diff options
author | Raul Infante-Sainz <infantesainz@gmail.com> | 2021-03-19 18:11:12 +0000 |
---|---|---|
committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2021-03-20 01:08:21 +0000 |
commit | a981196b2e2eea6fe0517040c49a32f757ad28cf (patch) | |
tree | 555b917ab048813e612831306f638efa6364856c | |
parent | c3e82b1c7b6c358719f3d1dd5cf4871cde3446a7 (diff) |
Configuration: nullability-completeness warnings suppressed
With a recent update of macOS systems (macOS Big Sur 11.2.3 and Xcode
12.4), there are many warnings when building C programs (for example the
simple program we compile to check the compiler, or some of the software
like `gzip'). It prints hundreds of warning lines for every source file
that are irrelevant for our builds, but really clutters the output.
With this commit, these warnings are disabled by adding
`-Wno-nullability-completeness' to the 'CPPFLAGS' environment
variable. This has also been added to the very first check of the C
compiler in the configure step.
-rw-r--r-- | reproduce/software/make/basic.mk | 3 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 2 | ||||
-rwxr-xr-x | reproduce/software/shell/configure.sh | 11 |
3 files changed, 13 insertions, 3 deletions
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk index efb7377..fb378b8 100644 --- a/reproduce/software/make/basic.mk +++ b/reproduce/software/make/basic.mk @@ -86,7 +86,8 @@ export SHELL := $(ibdir)/dash export PATH := $(ibdir):$(PATH) export PKG_CONFIG_PATH := $(ildir)/pkgconfig export PKG_CONFIG_LIBDIR := $(ildir)/pkgconfig -export CPPFLAGS := -I$(idir)/include $(CPPFLAGS) +export CPPFLAGS := -I$(idir)/include $(CPPFLAGS) \ + -Wno-nullability-completeness export LDFLAGS := $(rpath_command) -L$(ildir) $(LDFLAGS) # This is the "basic" tools where we are relying on the host operating diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index 26a58f7..9628df4 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -125,10 +125,10 @@ all: $(foreach p, $(targets-proglib), $(ibidir)/$(p)) \ export PATH := $(ibdir) export CCACHE_DISABLE := 1 export SHELL := $(ibdir)/bash -export CPPFLAGS := -I$(idir)/include .SHELLFLAGS := --noprofile --norc -ec export LDFLAGS := $(rpath_command) -L$(ildir) export PKG_CONFIG_LIBDIR := $(ildir)/pkgconfig +export CPPFLAGS := -I$(idir)/include -Wno-nullability-completeness export PKG_CONFIG_PATH := $(ildir)/pkgconfig:$(idir)/share/pkgconfig # Settings specific to this Makefile. diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh index 8ae74d2..fe46cef 100755 --- a/reproduce/software/shell/configure.sh +++ b/reproduce/software/shell/configure.sh @@ -424,8 +424,17 @@ if ! [ -d $compilertestdir ]; then mkdir $compilertestdir; fi # Check C compiler # ---------------- +# +# Here we check if the C compiler works properly. About the "no warning" +# variable ('nowarnings'): +# +# -Wno-nullability-completeness: on macOS Big Sur 11.2.3 and Xcode 12.4, +# hundreds of 'nullability-completeness' warnings are printed which can +# be very annoying and even hide important errors or warnings. It is +# also harmless for our test here, so it is generally added. testprog=$compilertestdir/test testsource=$compilertestdir/test.c +noccwarnings="-Wno-nullability-completeness" echo; echo; echo "Checking host C compiler ('$CC')..."; cat > $testsource <<EOF #include <stdio.h> @@ -433,7 +442,7 @@ cat > $testsource <<EOF int main(void){printf("...C compiler works.\n"); return EXIT_SUCCESS;} EOF -if $CC $testsource -o$testprog && $testprog; then +if $CC $noccwarnings $testsource -o$testprog && $testprog; then rm $testsource $testprog else rm $testsource |