crossgcc: Fix building with clang++ in the presence of gcc
Some environments (<grumble>cros_sdk</grumble>) provide gcc as $CC and clang++ as $CXX. The latter needs the higher bracket-depth while the former has no idea what it means, so tell CC and CXX individually. Change-Id: I72b75fb9bb5df3a9b1561ee8821ec43ada29b24f Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-on: https://review.coreboot.org/20365 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
98409cff92
commit
a7a5a56370
|
@ -645,7 +645,9 @@ bootstrap_GCC() {
|
|||
build_cross_GCC() {
|
||||
# Work around crazy code generator in GCC that confuses CLANG.
|
||||
$CC --version | grep clang >/dev/null 2>&1 && \
|
||||
HOSTCFLAGS="$HOSTCFLAGS -fbracket-depth=1024"
|
||||
CLANGFLAGS="-fbracket-depth=1024"
|
||||
$CXX --version | grep clang >/dev/null 2>&1 && \
|
||||
CLANGCXXFLAGS="-fbracket-depth=1024"
|
||||
|
||||
# GCC does not honor HOSTCFLAGS at all. CFLAGS are used for
|
||||
# both target and host object files.
|
||||
|
@ -655,9 +657,12 @@ build_cross_GCC() {
|
|||
# Also set the CXX version of the flags because GCC is now compiled
|
||||
# using C++.
|
||||
CC="$(hostcc target)" CXX="$(hostcxx target)" \
|
||||
CFLAGS_FOR_TARGET="-O2 -Dinhibit_libc" CFLAGS="$HOSTCFLAGS" \
|
||||
CFLAGS_FOR_BUILD="$HOSTCFLAGS" CXXFLAGS="$HOSTCFLAGS" \
|
||||
CXXFLAGS_FOR_BUILD="$HOSTCFLAGS" ../gcc-${GCC_VERSION}/configure \
|
||||
CFLAGS_FOR_TARGET="-O2 -Dinhibit_libc"
|
||||
CFLAGS="$HOSTCFLAGS $CLANGFLAGS" \
|
||||
CFLAGS_FOR_BUILD="$HOSTCFLAGS $CLANGFLAGS" \
|
||||
CXXFLAGS="$HOSTCFLAGS $CLANGCXXFLAGS" \
|
||||
CXXFLAGS_FOR_BUILD="$HOSTCFLAGS $CLANGCXXFLAGS" \
|
||||
../gcc-${GCC_VERSION}/configure \
|
||||
--prefix=$TARGETDIR --libexecdir=$TARGETDIR/lib \
|
||||
--target=${TARGETARCH} --disable-werror --disable-shared \
|
||||
--enable-lto --enable-plugins --enable-gold --enable-ld=default \
|
||||
|
|
Loading…
Reference in New Issue