diff --git a/Makefile.include b/Makefile.include index 6eaa239fff0a8b8ceeccd687affc9c0bf7bdc648..01482ca9a3d9d6d3f09dd445389ff474437fc8cb 100644 --- a/Makefile.include +++ b/Makefile.include @@ -29,17 +29,6 @@ BB = $(shell echo $(BOARD)|tr 'a-z' 'A-Z') CPUDEF = $(shell echo $(CPU)|tr 'a-z' 'A-Z') CFLAGS += -DBOARD=$(BB) -DCPU_$(CPUDEF) -# Add `-fno-delete-null-pointer-checks` flag iff the compiler supports it. -# GCC removes moves tests whether `x == NULL`, if previously `x` or even `x->y` was accessed. -# 0x0 might be a sane memory location for embedded systems, so the test must not be removed. -# Right now clang does not use the *delete-null-pointer* optimization, and does not understand the parameter. -# Related issues: #628, #664. -ifeq ($(shell $(CC) -fno-delete-null-pointer-checks -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0) -ifeq ($(shell LANG=C $(CC) -fno-delete-null-pointer-checks -E - 2>&1 1>/dev/null </dev/null | grep warning: | grep -- -fno-delete-null-pointer-checks),) -CFLAGS += -fno-delete-null-pointer-checks -endif -endif - export CFLAGS export BINDIR =$(CURDIR)/bin/$(BOARD)/ @@ -72,6 +61,17 @@ endif endif endif +# Add `-fno-delete-null-pointer-checks` flag iff the compiler supports it. +# GCC removes moves tests whether `x == NULL`, if previously `x` or even `x->y` was accessed. +# 0x0 might be a sane memory location for embedded systems, so the test must not be removed. +# Right now clang does not use the *delete-null-pointer* optimization, and does not understand the parameter. +# Related issues: #628, #664. +ifeq ($(shell $(CC) -fno-delete-null-pointer-checks -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0) +ifeq ($(shell LANG=C $(CC) -fno-delete-null-pointer-checks -E - 2>&1 1>/dev/null </dev/null | grep warning: | grep -- -fno-delete-null-pointer-checks),) +CFLAGS += -fno-delete-null-pointer-checks +endif +endif + # your binaries to link BASELIBS += $(BINDIR)$(BOARD)_base.a BASELIBS += $(BINDIR)${PROJECT}.a