util/xcompile: Split $CFLAGS_GCC
Split common flags that are not specific to the C language out of $CFLAGS_GCC into $FLAGS_GCC. This way, we can test for C specific flags, too, without adding them to $ADAFLAGS_*. Currently this is done for `-Wno-address-of-packed-member` which only applies to C. Change-Id: Ib793c62656efb07b6e5b3385f1ed1c96a40efd1d Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/39633 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr> Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
committed by
Patrick Georgi
parent
34473ea6c9
commit
260ba6b25e
@@ -148,11 +148,11 @@ testas() {
|
|||||||
[ "$obj_arch" = "$full_arch" ] || return 1
|
[ "$obj_arch" = "$full_arch" ] || return 1
|
||||||
|
|
||||||
unset ASFLAGS LDFLAGS
|
unset ASFLAGS LDFLAGS
|
||||||
unset CFLAGS_GCC CFLAGS_CLANG
|
unset FLAGS_GCC CFLAGS_GCC CFLAGS_CLANG
|
||||||
|
|
||||||
if [ -n "$use_dash_twidth" ]; then
|
if [ -n "$use_dash_twidth" ]; then
|
||||||
ASFLAGS="--$twidth"
|
ASFLAGS="--$twidth"
|
||||||
CFLAGS_GCC="-m$twidth"
|
FLAGS_GCC="-m$twidth"
|
||||||
CFLAGS_CLANG="-m$twidth"
|
CFLAGS_CLANG="-m$twidth"
|
||||||
LDFLAGS="-b $full_arch"
|
LDFLAGS="-b $full_arch"
|
||||||
|
|
||||||
@@ -162,7 +162,7 @@ testas() {
|
|||||||
[ -n "$use_dash_twidth" ] && case "$full_arch" in
|
[ -n "$use_dash_twidth" ] && case "$full_arch" in
|
||||||
"elf32-i386" )
|
"elf32-i386" )
|
||||||
LDFLAGS="$LDFLAGS -melf_i386"
|
LDFLAGS="$LDFLAGS -melf_i386"
|
||||||
CFLAGS_GCC="$CFLAGS_GCC -Wl,-b,elf32-i386 -Wl,-melf_i386"
|
FLAGS_GCC="$FLAGS_GCC -Wl,-b,elf32-i386 -Wl,-melf_i386"
|
||||||
CFLAGS_CLANG="$CFLAGS_CLANG -Wl,-b,elf32-i386 -Wl,-melf_i386"
|
CFLAGS_CLANG="$CFLAGS_CLANG -Wl,-b,elf32-i386 -Wl,-melf_i386"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -173,19 +173,19 @@ testas() {
|
|||||||
detect_special_flags() {
|
detect_special_flags() {
|
||||||
local architecture="$1"
|
local architecture="$1"
|
||||||
# Check for an operational -m32/-m64
|
# Check for an operational -m32/-m64
|
||||||
testcc "$GCC" "$CFLAGS_GCC -m$TWIDTH " &&
|
testcc "$GCC" "$FLAGS_GCC -m$TWIDTH " &&
|
||||||
CFLAGS_GCC="$CFLAGS_GCC -m$TWIDTH "
|
FLAGS_GCC="$FLAGS_GCC -m$TWIDTH "
|
||||||
|
|
||||||
# Use bfd linker instead of gold if available:
|
# Use bfd linker instead of gold if available:
|
||||||
testcc "$GCC" "$CFLAGS_GCC -fuse-ld=bfd" &&
|
testcc "$GCC" "$FLAGS_GCC -fuse-ld=bfd" &&
|
||||||
CFLAGS_GCC="$CFLAGS_GCC -fuse-ld=bfd" && LINKER_SUFFIX='.bfd'
|
FLAGS_GCC="$FLAGS_GCC -fuse-ld=bfd" && LINKER_SUFFIX='.bfd'
|
||||||
|
|
||||||
testcc "$GCC" "$CFLAGS_GCC -fno-stack-protector" &&
|
testcc "$GCC" "$FLAGS_GCC -fno-stack-protector" &&
|
||||||
CFLAGS_GCC="$CFLAGS_GCC -fno-stack-protector"
|
FLAGS_GCC="$FLAGS_GCC -fno-stack-protector"
|
||||||
testcc "$GCC" "$CFLAGS_GCC -Wl,--build-id=none" &&
|
testcc "$GCC" "$FLAGS_GCC -Wl,--build-id=none" &&
|
||||||
CFLAGS_GCC="$CFLAGS_GCC -Wl,--build-id=none"
|
FLAGS_GCC="$FLAGS_GCC -Wl,--build-id=none"
|
||||||
|
|
||||||
testcc "$GCC" "$CFLAGS_GCC -Wno-address-of-packed-member" &&
|
testcc "$GCC" "$CFLAGS_GCC -Wno-address-of-packed-member $FLAGS_GCC" &&
|
||||||
CFLAGS_GCC="$CFLAGS_GCC -Wno-address-of-packed-member"
|
CFLAGS_GCC="$CFLAGS_GCC -Wno-address-of-packed-member"
|
||||||
case "$architecture" in
|
case "$architecture" in
|
||||||
x86)
|
x86)
|
||||||
@@ -193,7 +193,7 @@ detect_special_flags() {
|
|||||||
x64)
|
x64)
|
||||||
;;
|
;;
|
||||||
arm64)
|
arm64)
|
||||||
testld "$GCC" "$CFLAGS_GCC" "${GCCPREFIX}ld${LINKER_SUFFIX}" \
|
testld "$GCC" "$FLAGS_GCC" "${GCCPREFIX}ld${LINKER_SUFFIX}" \
|
||||||
"$LDFLAGS --fix-cortex-a53-843419" && \
|
"$LDFLAGS --fix-cortex-a53-843419" && \
|
||||||
LDFLAGS_ARM64_A53_ERRATUM_843419+=" --fix-cortex-a53-843419"
|
LDFLAGS_ARM64_A53_ERRATUM_843419+=" --fix-cortex-a53-843419"
|
||||||
;;
|
;;
|
||||||
@@ -202,7 +202,7 @@ detect_special_flags() {
|
|||||||
|
|
||||||
detect_compiler_runtime() {
|
detect_compiler_runtime() {
|
||||||
test -z "$GCC" || \
|
test -z "$GCC" || \
|
||||||
CC_RT_GCC="$(${GCC} ${CFLAGS_GCC} -print-libgcc-file-name)"
|
CC_RT_GCC="$(${GCC} ${CFLAGS_GCC} ${FLAGS_GCC} -print-libgcc-file-name)"
|
||||||
if [ ${CLANG_RUNTIME} = "libgcc" ]; then
|
if [ ${CLANG_RUNTIME} = "libgcc" ]; then
|
||||||
CC_RT_CLANG=${CC_RT_GCC}
|
CC_RT_CLANG=${CC_RT_GCC}
|
||||||
else
|
else
|
||||||
@@ -219,10 +219,10 @@ SUBARCH_SUPPORTED+=${TSUPP-${TARCH}}
|
|||||||
|
|
||||||
# GCC
|
# GCC
|
||||||
GCC_CC_${TARCH}:=${GCC}
|
GCC_CC_${TARCH}:=${GCC}
|
||||||
GCC_CFLAGS_${TARCH}:=${CFLAGS_GCC}
|
GCC_CFLAGS_${TARCH}:=${CFLAGS_GCC} ${FLAGS_GCC}
|
||||||
# Generally available for GCC's cc1:
|
# Generally available for GCC's cc1:
|
||||||
GCC_CFLAGS_${TARCH}+=-fno-delete-null-pointer-checks -Wlogical-op
|
GCC_CFLAGS_${TARCH}+=-fno-delete-null-pointer-checks -Wlogical-op
|
||||||
GCC_ADAFLAGS_${TARCH}:=${CFLAGS_GCC}
|
GCC_ADAFLAGS_${TARCH}:=${FLAGS_GCC}
|
||||||
GCC_COMPILER_RT_${TARCH}:=${CC_RT_GCC}
|
GCC_COMPILER_RT_${TARCH}:=${CC_RT_GCC}
|
||||||
GCC_COMPILER_RT_FLAGS_${TARCH}:=${CC_RT_EXTRA_GCC}
|
GCC_COMPILER_RT_FLAGS_${TARCH}:=${CC_RT_EXTRA_GCC}
|
||||||
|
|
||||||
@@ -425,7 +425,7 @@ test_architecture() {
|
|||||||
"" "$endian" ||
|
"" "$endian" ||
|
||||||
testas "$gccprefix" "$TWIDTH" "$TBFDARCH" \
|
testas "$gccprefix" "$TWIDTH" "$TBFDARCH" \
|
||||||
"TRUE" "$endian" ; } && \
|
"TRUE" "$endian" ; } && \
|
||||||
testcc "${gccprefix}gcc" "$CFLAGS_GCC" && \
|
testcc "${gccprefix}gcc" "$CFLAGS_GCC" "$FLAGS_GCC" && \
|
||||||
GCCPREFIX="$gccprefix" && \
|
GCCPREFIX="$gccprefix" && \
|
||||||
break 3
|
break 3
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user