diff options
| author | Peter Jones <pjones@redhat.com> | 2021-08-02 13:09:28 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2021-09-07 17:05:04 -0400 |
| commit | 116a8310ab93d803fa51f9ba9f3d6d0cb691e2bf (patch) | |
| tree | d4119e4f7bdea652cd7fdaa47bd1ffb01dbd42a5 | |
| parent | 3f7050da2b5fa0548394c6f88cff14d2df00ff34 (diff) | |
| download | efi-boot-shim-116a8310ab93d803fa51f9ba9f3d6d0cb691e2bf.tar.gz efi-boot-shim-116a8310ab93d803fa51f9ba9f3d6d0cb691e2bf.zip | |
More minor improvements to support for COMPILER=clang
A couple of places snuck in where building with COMPILER=clang didn't
work right; this makes them work again.
Signed-off-by: Peter Jones <pjones@redhat.com>
| -rw-r--r-- | Make.defaults | 7 | ||||
| -rw-r--r-- | Makefile | 19 | ||||
| -rw-r--r-- | include/test.mk | 14 | ||||
| -rw-r--r-- | shim.h | 4 |
4 files changed, 37 insertions, 7 deletions
diff --git a/Make.defaults b/Make.defaults index 1b929a71..d041f0d5 100644 --- a/Make.defaults +++ b/Make.defaults @@ -52,7 +52,11 @@ override EFI_INCLUDES := $(EFI_INCLUDES) EFI_CRT_OBJS = $(LOCAL_EFI_PATH)/crt0-efi-$(ARCH_GNUEFI).o EFI_LDS = $(TOPDIR)/elf_$(ARCH)_efi.lds -CLANG_BUGS = $(if $(findstring gcc,$(CC)),-maccumulate-outgoing-args,) +CLANG_WARNINGS = -Wno-pointer-bool-conversion \ + -Wno-unknown-attributes + +CLANG_BUGS = $(if $(findstring gcc,$(CC)),-maccumulate-outgoing-args,) \ + $(if $(findstring clang,$(CC)),$(CLANG_WARNINGS)) COMMIT_ID ?= $(shell if [ -e .git ] ; then git log -1 --pretty=format:%H ; elif [ -f commit ]; then cat commit ; else echo master; fi) @@ -131,6 +135,7 @@ $(call update-variable,WERRFLAGS) CFLAGS = $(FEATUREFLAGS) \ $(OPTIMIZATIONS) \ $(WARNFLAGS) \ + $(if $(findstring clang,$(CC)),$(CLANG_WARNINGS)) \ $(ARCH_CFLAGS) \ $(WERRFLAGS) \ $(INCLUDES) \ @@ -153,7 +153,10 @@ gnu-efi/$(ARCH_GNUEFI)/gnuefi/libgnuefi.a gnu-efi/$(ARCH_GNUEFI)/lib/libefi.a: C gnu-efi/$(ARCH_GNUEFI)/gnuefi/libgnuefi.a gnu-efi/$(ARCH_GNUEFI)/lib/libefi.a: mkdir -p gnu-efi/lib gnu-efi/gnuefi $(MAKE) -C gnu-efi \ - ARCH=$(ARCH_GNUEFI) TOPDIR=$(TOPDIR)/gnu-efi \ + COMPILER="$(COMPILER)" \ + CC="$(CC)" \ + ARCH=$(ARCH_GNUEFI) \ + TOPDIR=$(TOPDIR)/gnu-efi \ -f $(TOPDIR)/gnu-efi/Makefile \ lib gnuefi inc @@ -285,7 +288,13 @@ else endif test : - @make -f $(TOPDIR)/include/test.mk EFI_INCLUDES="$(EFI_INCLUDES)" ARCH_DEFINES="$(ARCH_DEFINES)" all + @make -f $(TOPDIR)/include/test.mk \ + COMPILER="$(COMPILER)" \ + CROSS_COMPILE="$(CROSS_COMPILE)" \ + CLANG_WARNINGS="$(CLANG_WARNINGS)" \ + ARCH_DEFINES="$(ARCH_DEFINES)" \ + EFI_INCLUDES="$(EFI_INCLUDES)" \ + all $(patsubst %.c,%,$(wildcard test-*.c)) : @make -f $(TOPDIR)/include/test.mk EFI_INCLUDES="$(EFI_INCLUDES)" ARCH_DEFINES="$(ARCH_DEFINES)" $@ @@ -298,7 +307,11 @@ clean-test-objs: clean-gnu-efi: @if [ -d gnu-efi ] ; then \ $(MAKE) -C gnu-efi \ - ARCH=$(ARCH_GNUEFI) TOPDIR=$(TOPDIR)/gnu-efi \ + CC="$(CC)" \ + HOSTCC="$(HOSTCC)" \ + COMPILER="$(COMPILER)" \ + ARCH=$(ARCH_GNUEFI) \ + TOPDIR=$(TOPDIR)/gnu-efi \ -f $(TOPDIR)/gnu-efi/Makefile \ clean ; \ fi diff --git a/include/test.mk b/include/test.mk index 68230b20..b99283f3 100644 --- a/include/test.mk +++ b/include/test.mk @@ -27,10 +27,11 @@ CFLAGS = $(OPTIMIZATIONS) -std=gnu11 \ -fno-eliminate-unused-debug-symbols \ -gpubnames \ -grecord-gcc-switches \ + $(if $(findstring clang,$(CC)),-Wno-unknown-warning-option) \ $(DEFAULT_WARNFLAGS) \ -Wsign-compare \ -Wno-deprecated-declarations \ - -Wno-unused-but-set-variable \ + $(if $(findstring gcc,$(CC)),-Wno-unused-but-set-variable) \ -Wno-unused-variable \ -Wno-pointer-sign \ $(DEFAULT_WERRFLAGS) \ @@ -43,11 +44,18 @@ CFLAGS = $(OPTIMIZATIONS) -std=gnu11 \ "-DDEFAULT_DEBUG_PRINT_STATE=$(DEBUG_PRINTS)" libefi-test.a : - $(MAKE) -C gnu-efi ARCH=$(ARCH_GNUEFI) TOPDIR=$(TOPDIR)/gnu-efi \ + $(MAKE) -C gnu-efi \ + COMPILER="$(COMPILER)" \ + CC="$(CC)" \ + ARCH=$(ARCH_GNUEFI) \ + TOPDIR=$(TOPDIR)/gnu-efi \ -f $(TOPDIR)/gnu-efi/Makefile \ clean lib mv gnu-efi/$(ARCH)/lib/libefi.a $@ - $(MAKE) -C gnu-efi ARCH=$(ARCH_GNUEFI) TOPDIR=$(TOPDIR)/gnu-efi \ + $(MAKE) -C gnu-efi \ + COMPILER="$(COMPILER)" \ + ARCH=$(ARCH_GNUEFI) \ + TOPDIR=$(TOPDIR)/gnu-efi \ -f $(TOPDIR)/gnu-efi/Makefile \ clean @@ -27,6 +27,10 @@ #error On x86_64 you must have a compiler new enough to support __attribute__((__ms_abi__)) #endif +#if CLANG_PREREQ(3, 4) +#pragma GCC diagnostic ignored "-Wpointer-bool-conversion" +#endif + #if !defined(GNU_EFI_USE_EXTERNAL_STDARG) #define GNU_EFI_USE_EXTERNAL_STDARG #endif |
