core/buildsystem: check the actual compiler being version

Make compiler check use the output of the actual compiler being
used as reported by the CC variable, instead of unconditionally
running the "gcc" binary.  Also only run the check if the compiler
is gcc or a cross-compile gcc.

ASTERISK-28374

Change-Id: Icaacf6d93686ad21076878aa1504a23b4fc9d0f4
pull/13/head
Guido Falsi 6 years ago committed by George Joseph
parent 3c106814d5
commit 8b7324ed3f

@ -70,11 +70,16 @@ ifneq ($(findstring darwin,$(OSARCH)),)
endif endif
endif endif
# gcc version 8.2.1 and above must have partial-inlining disabled to avoid documented bug # gcc version 8.2.1 and above must have partial-inlining disabled to avoid documented bug.
GCC_VER_GTE821:=$(shell expr `gcc --version | grep ^gcc | cut -d ' ' -f 3 | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/'` \>= 80201) # We must handle cross-compiling and clang so make sure the compiler version string has "gcc"
# somewhere in it before testing the version.
CC_VERS_STRING=$(shell $(CC) --version | grep -i gcc)
ifneq ($(CC_VERS_STRING),)
GCC_VER_GTE821:=$(shell expr `echo '$(CC_VERS_STRING)' | cut -d ' ' -f 3 | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$$/&00/'` \>= 80201)
ifeq ($(GCC_VER_GTE821),1) ifeq ($(GCC_VER_GTE821),1)
OPTIMIZE+=-fno-partial-inlining OPTIMIZE+=-fno-partial-inlining
endif endif
endif
ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS))$(AST_CODE_COVERAGE),no) ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS))$(AST_CODE_COVERAGE),no)
_ASTCFLAGS+=$(OPTIMIZE) _ASTCFLAGS+=$(OPTIMIZE)

Loading…
Cancel
Save