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
13.27
Guido Falsi 6 years ago committed by George Joseph
parent a5b463cabf
commit 8ee69fbdd0

@ -67,11 +67,16 @@ ifneq ($(findstring darwin,$(OSARCH)),)
endif
endif
# 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)
# gcc version 8.2.1 and above must have partial-inlining disabled to avoid documented bug.
# 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)
OPTIMIZE+=-fno-partial-inlining
endif
endif
ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS))$(AST_CODE_COVERAGE),no)
_ASTCFLAGS+=$(OPTIMIZE)

Loading…
Cancel
Save