summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2023-08-22 12:41:13 -0400
committerPeter Jones <pjones@redhat.com>2023-08-25 14:14:45 -0400
commit04111d41f03b6de060209d417f5d18cce3ab2ea2 (patch)
tree112238855262e69b466bfa82025370cfb341598d
parentdbbe3c84bd0e7683d4b81c1794a112a6853b80ee (diff)
downloadefi-boot-shim-04111d41f03b6de060209d417f5d18cce3ab2ea2.tar.gz
efi-boot-shim-04111d41f03b6de060209d417f5d18cce3ab2ea2.zip
Make some of the static analysis tools a little easier to run
With "gcc -fanalyzer" and "scan-build", it's convenient to be able to continue even though the compiler has returned error on one or more source files. This makes it so compiler errors are ignored in some of those cases. Signed-off-by: Peter Jones <pjones@redhat.com>
-rw-r--r--Make.rules2
-rw-r--r--Makefile8
-rw-r--r--include/fanalyzer.mk1
-rw-r--r--include/scan-build.mk1
4 files changed, 7 insertions, 5 deletions
diff --git a/Make.rules b/Make.rules
index 7c6ec6c0..96a8649a 100644
--- a/Make.rules
+++ b/Make.rules
@@ -36,6 +36,6 @@ $(strip $(foreach x,$(DEFAULT_$(1)),
endef
%.o : %.S
- $(CC) $(CFLAGS) -c -o $@ $<
+ $(CC) $(CFLAGS) -c -o $@ $< $(IGNORE_COMPILER_ERRORS)
# vim:filetype=make
diff --git a/Makefile b/Makefile
index 8a33fa7e..aaa927d2 100644
--- a/Makefile
+++ b/Makefile
@@ -160,19 +160,19 @@ gnu-efi/$(ARCH_GNUEFI)/gnuefi/libgnuefi.a gnu-efi/$(ARCH_GNUEFI)/lib/libefi.a:
ARCH=$(ARCH_GNUEFI) \
TOPDIR=$(TOPDIR)/gnu-efi \
-f $(TOPDIR)/gnu-efi/Makefile \
- lib gnuefi inc
+ lib gnuefi inc $(IGNORE_COMPILER_ERRORS)
Cryptlib/libcryptlib.a:
for i in Hash Hmac Cipher Rand Pk Pem SysCall; do mkdir -p Cryptlib/$$i; done
- $(MAKE) TOPDIR=$(TOPDIR) VPATH=$(TOPDIR)/Cryptlib -C Cryptlib -f $(TOPDIR)/Cryptlib/Makefile
+ $(MAKE) TOPDIR=$(TOPDIR) VPATH=$(TOPDIR)/Cryptlib -C Cryptlib -f $(TOPDIR)/Cryptlib/Makefile $(IGNORE_COMPILER_ERRORS)
Cryptlib/OpenSSL/libopenssl.a:
for i in x509v3 x509 txt_db stack sha rsa rc4 rand pkcs7 pkcs12 pem ocsp objects modes md5 lhash kdf hmac evp err dso dh conf comp cmac buffer bn bio async/arch asn1 aes; do mkdir -p Cryptlib/OpenSSL/crypto/$$i; done
- $(MAKE) TOPDIR=$(TOPDIR) VPATH=$(TOPDIR)/Cryptlib/OpenSSL -C Cryptlib/OpenSSL -f $(TOPDIR)/Cryptlib/OpenSSL/Makefile
+ $(MAKE) TOPDIR=$(TOPDIR) VPATH=$(TOPDIR)/Cryptlib/OpenSSL -C Cryptlib/OpenSSL -f $(TOPDIR)/Cryptlib/OpenSSL/Makefile $(IGNORE_COMPILER_ERRORS)
lib/lib.a: | $(TOPDIR)/lib/Makefile $(wildcard $(TOPDIR)/include/*.[ch])
mkdir -p lib
- $(MAKE) VPATH=$(TOPDIR)/lib TOPDIR=$(TOPDIR) -C lib -f $(TOPDIR)/lib/Makefile
+ $(MAKE) VPATH=$(TOPDIR)/lib TOPDIR=$(TOPDIR) -C lib -f $(TOPDIR)/lib/Makefile $(IGNORE_COMPILER_ERRORS)
post-process-pe : $(TOPDIR)/post-process-pe.c
$(HOSTCC) -std=gnu11 -Og -g3 -Wall -Wextra -Wno-missing-field-initializers -Werror -o $@ $<
diff --git a/include/fanalyzer.mk b/include/fanalyzer.mk
index e0bf4d75..a0679e3e 100644
--- a/include/fanalyzer.mk
+++ b/include/fanalyzer.mk
@@ -21,6 +21,7 @@ fanalyzer-build-all : COMPILER=gcc
fanalyzer-build-all : CCACHE_DISABLE=1
fanalyzer-build-all : FEATUREFLAGS+=-fanalyzer
fanalyzer-build-all : WERRFLAGS=-Werror=analyzer-null-dereference
+fanalyzer-build-all : IGNORE_COMPILER_ERRORS=" || :"
fanalyzer-build-all : all
fanalyzer-no-openssl : | fanalyzer-test
diff --git a/include/scan-build.mk b/include/scan-build.mk
index 3ed7660e..170ba836 100644
--- a/include/scan-build.mk
+++ b/include/scan-build.mk
@@ -22,6 +22,7 @@ scan-build-unchecked-openssl : Cryptlib/OpenSSL/libopenssl.a
scan-build-all : CCACHE_DISABLE=1
scan-build-all : COMPILER=clang
+scan-build-all : IGNORE_COMPILER_ERRORS=" || :"
scan-build-all : | scan-test
scan-build-all :
+scan-build -o scan-results make $(MAKEARGS) $(DASHJ) CCACHE_DISABLE=1 all