mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-27 01:55:32 +03:00
Merge pull request #13317 from ddstreet/werror
Fix build warnings, so Ubuntu CI can pass --werror to meson
This commit is contained in:
commit
3a2acd9ee0
@ -6,24 +6,24 @@
|
|||||||
#include "linux.h"
|
#include "linux.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#ifdef __x86_64__
|
#ifdef __i386__
|
||||||
typedef VOID(*handover_f)(VOID *image, EFI_SYSTEM_TABLE *table, struct boot_params *params);
|
#define __regparm0__ __attribute__((regparm(0)))
|
||||||
static VOID linux_efi_handover(EFI_HANDLE image, struct boot_params *params) {
|
|
||||||
handover_f handover;
|
|
||||||
|
|
||||||
asm volatile ("cli");
|
|
||||||
handover = (handover_f)((UINTN)params->hdr.code32_start + 512 + params->hdr.handover_offset);
|
|
||||||
handover(image, ST, params);
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
typedef VOID(*handover_f)(VOID *image, EFI_SYSTEM_TABLE *table, struct boot_params *params) __attribute__((regparm(0)));
|
#define __regparm0__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef VOID(*handover_f)(VOID *image, EFI_SYSTEM_TABLE *table, struct boot_params *params) __regparm0__;
|
||||||
static VOID linux_efi_handover(EFI_HANDLE image, struct boot_params *params) {
|
static VOID linux_efi_handover(EFI_HANDLE image, struct boot_params *params) {
|
||||||
handover_f handover;
|
handover_f handover;
|
||||||
|
UINTN start = (UINTN)params->hdr.code32_start;
|
||||||
|
|
||||||
handover = (handover_f)((UINTN)params->hdr.code32_start + params->hdr.handover_offset);
|
#ifdef __x86_64__
|
||||||
|
asm volatile ("cli");
|
||||||
|
start += 512;
|
||||||
|
#endif
|
||||||
|
handover = (handover_f)(start + params->hdr.handover_offset);
|
||||||
handover(image, ST, params);
|
handover(image, ST, params);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
EFI_STATUS linux_exec(EFI_HANDLE *image,
|
EFI_STATUS linux_exec(EFI_HANDLE *image,
|
||||||
CHAR8 *cmdline, UINTN cmdline_len,
|
CHAR8 *cmdline, UINTN cmdline_len,
|
||||||
|
@ -135,6 +135,9 @@ if have_gnu_efi
|
|||||||
compile_args += ['-mno-sse',
|
compile_args += ['-mno-sse',
|
||||||
'-mno-mmx']
|
'-mno-mmx']
|
||||||
endif
|
endif
|
||||||
|
if get_option('werror') == true
|
||||||
|
compile_args += ['-Werror']
|
||||||
|
endif
|
||||||
|
|
||||||
efi_ldflags = ['-T',
|
efi_ldflags = ['-T',
|
||||||
join_paths(efi_ldsdir, arch_lds),
|
join_paths(efi_ldsdir, arch_lds),
|
||||||
|
@ -14,14 +14,20 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "shim.h"
|
#include "shim.h"
|
||||||
|
|
||||||
|
#if defined(__x86_64__) || defined(__i386__)
|
||||||
|
#define __sysv_abi__ __attribute__((sysv_abi))
|
||||||
|
#else
|
||||||
|
#define __sysv_abi__
|
||||||
|
#endif
|
||||||
|
|
||||||
struct ShimLock {
|
struct ShimLock {
|
||||||
EFI_STATUS __attribute__((sysv_abi)) (*shim_verify) (VOID *buffer, UINT32 size);
|
EFI_STATUS __sysv_abi__ (*shim_verify) (VOID *buffer, UINT32 size);
|
||||||
|
|
||||||
/* context is actually a struct for the PE header, but it isn't needed so void is sufficient just do define the interface
|
/* context is actually a struct for the PE header, but it isn't needed so void is sufficient just do define the interface
|
||||||
* see shim.c/shim.h and PeHeader.h in the github shim repo */
|
* see shim.c/shim.h and PeHeader.h in the github shim repo */
|
||||||
EFI_STATUS __attribute__((sysv_abi)) (*generate_hash) (VOID *data, UINT32 datasize, VOID *context, UINT8 *sha256hash, UINT8 *sha1hash);
|
EFI_STATUS __sysv_abi__ (*generate_hash) (VOID *data, UINT32 datasize, VOID *context, UINT8 *sha256hash, UINT8 *sha1hash);
|
||||||
|
|
||||||
EFI_STATUS __attribute__((sysv_abi)) (*read_header) (VOID *data, UINT32 datasize, VOID *context);
|
EFI_STATUS __sysv_abi__ (*read_header) (VOID *data, UINT32 datasize, VOID *context);
|
||||||
};
|
};
|
||||||
|
|
||||||
static const EFI_GUID simple_fs_guid = SIMPLE_FILE_SYSTEM_PROTOCOL;
|
static const EFI_GUID simple_fs_guid = SIMPLE_FILE_SYSTEM_PROTOCOL;
|
||||||
|
Loading…
Reference in New Issue
Block a user