diff --git a/Cryptlib/Include/OpenSslSupport.h b/Cryptlib/Include/OpenSslSupport.h index 9e56ced..b77838d 100644 --- a/Cryptlib/Include/OpenSslSupport.h +++ b/Cryptlib/Include/OpenSslSupport.h @@ -34,7 +34,7 @@ typedef VOID *FILE; // // Map all va_xxxx elements to VA_xxx defined in MdePkg/Include/Base.h // -#if !defined(__CC_ARM) // if va_list is not already defined +#if !defined(__CC_ARM) || defined(_STDARG_H) // if va_list is not already defined /* * These are now unconditionally #defined by GNU_EFI's efistdarg.h, * so we should #undef them here before providing a new definition. @@ -94,7 +94,9 @@ typedef __builtin_va_list VA_LIST; portably, hence it is provided by a Standard C header file. For pre-Standard C compilers, here is a version that usually works (but watch out!): */ +#ifndef offsetof #define offsetof(type, member) ( (int) & ((type*)0) -> member ) +#endif // // Basic types from EFI Application Toolkit required to buiild Open SSL diff --git a/Cryptlib/Makefile b/Cryptlib/Makefile index 9719a27..1769e67 100644 --- a/Cryptlib/Makefile +++ b/Cryptlib/Makefile @@ -2,7 +2,8 @@ EFI_INCLUDES = -IInclude -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol CFLAGS = -ggdb -O0 -I. -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar \ - -Wall $(EFI_INCLUDES) + -Wall $(EFI_INCLUDES) \ + -ffreestanding -I$(shell $(CC) -print-file-name=include) ifeq ($(ARCH),x86_64) CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc -maccumulate-outgoing-args \ diff --git a/Cryptlib/OpenSSL/Makefile b/Cryptlib/OpenSSL/Makefile index 7990b3c..7bedb94 100644 --- a/Cryptlib/OpenSSL/Makefile +++ b/Cryptlib/OpenSSL/Makefile @@ -2,6 +2,7 @@ EFI_INCLUDES = -I../Include -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol CFLAGS = -ggdb -O0 -I. -I.. -I../Include/ -Icrypto -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar -nostdinc \ + -ffreestanding -I$(shell $(CC) -print-file-name=include) \ -Wall $(EFI_INCLUDES) -DOPENSSL_SYSNAME_UWIN -DOPENSSL_SYS_UEFI -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_SOCK -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_ERR -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE -DGETPID_IS_MEANINGLESS -DOPENSSL_NO_STDIO -DOPENSSL_NO_FP_API -DOPENSSL_NO_DGRAM -DOPENSSL_NO_SHA0 -DOPENSSL_NO_LHASH -DOPENSSL_NO_HW -DOPENSSL_NO_OCSP -DOPENSSL_NO_LOCKING -DOPENSSL_NO_DEPRECATED -DOPENSSL_SMALL_FOOTPRINT -DPEDANTIC ifeq ($(ARCH),x86_64) @@ -13,10 +14,10 @@ ifeq ($(ARCH),ia32) -m32 -DTHIRTY_TWO_BIT endif ifeq ($(ARCH),aarch64) - CFLAGS += -O2 -DSIXTY_FOUR_BIT_LONG -ffreestanding -I$(shell $(CC) -print-file-name=include) + CFLAGS += -O2 -DSIXTY_FOUR_BIT_LONG endif ifeq ($(ARCH),arm) - CFLAGS += -O2 -DTHIRTY_TWO_BIT -ffreestanding -I$(shell $(CC) -print-file-name=include) + CFLAGS += -O2 -DTHIRTY_TWO_BIT endif LDFLAGS = -nostdlib -znocombreloc diff --git a/Makefile b/Makefile index 532bcf3..1808ca3 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,8 @@ EFI_LDS = elf_$(ARCH)_efi.lds DEFAULT_LOADER := \\\\grub.efi CFLAGS = -ggdb -O0 -fno-stack-protector -fno-strict-aliasing -fpic \ -fshort-wchar -Wall -Wsign-compare -Werror -fno-builtin \ - -Werror=sign-compare \ + -Werror=sign-compare -ffreestanding \ + -I$(shell $(CC) -print-file-name=include) \ "-DDEFAULT_LOADER=L\"$(DEFAULT_LOADER)\"" \ "-DDEFAULT_LOADER_CHAR=\"$(DEFAULT_LOADER)\"" \ $(EFI_INCLUDES) @@ -31,19 +32,13 @@ ifneq ($(origin OVERRIDE_SECURITY_POLICY), undefined) endif ifeq ($(ARCH),x86_64) - CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc -maccumulate-outgoing-args \ + CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc \ + -maccumulate-outgoing-args \ -DEFI_FUNCTION_WRAPPER -DGNU_EFI_USE_MS_ABI endif ifeq ($(ARCH),ia32) - CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc -maccumulate-outgoing-args -m32 -endif - -ifeq ($(ARCH),aarch64) - CFLAGS += -ffreestanding -I$(shell $(CC) -print-file-name=include) -endif - -ifeq ($(ARCH),arm) - CFLAGS += -ffreestanding -I$(shell $(CC) -print-file-name=include) + CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc \ + -maccumulate-outgoing-args -m32 endif ifneq ($(origin VENDOR_CERT_FILE), undefined) diff --git a/MokManager.c b/MokManager.c index ee29051..0235dd8 100644 --- a/MokManager.c +++ b/MokManager.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include "shim.h"