[coreboot-gerrit] Patch set updated for coreboot: crossgcc: Fix compilation on clang systems

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Tue Apr 5 17:11:55 CEST 2016


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14232

-gerrit

commit 6f9f8d1d228fbc25c9d9215f85953eb631e82839
Author: Stefan Reinauer <stefan.reinauer at coreboot.org>
Date:   Sun Apr 3 20:52:01 2016 -0700

    crossgcc: Fix compilation on clang systems
    
    Most targets have been broken on systems with CLANG being the default
    compiler (OS X and some BSDs). CLANG dislikes some of GCC's autogenerated
    code. We also missed switching CFLAGS to CXXFLAGS when GCC switched to C++
    compilation per default.
    
    Change-Id: I87caa1a15982c431048aa79748ea7ef655a9a3a1
    Signed-off-by: Stefan Reinauer <stefan.reinauer at coreboot.org>
---
 util/crossgcc/buildgcc | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
index 525b574..96e4c19 100755
--- a/util/crossgcc/buildgcc
+++ b/util/crossgcc/buildgcc
@@ -18,8 +18,8 @@
 
 cd $(dirname $0)
 
-CROSSGCC_DATE="March 21st, 2016"
-CROSSGCC_VERSION="1.37"
+CROSSGCC_DATE="April 3rd, 2016"
+CROSSGCC_VERSION="1.38"
 
 # default settings
 PACKAGE=GCC
@@ -453,13 +453,20 @@ build_BINUTILS() {
 
 
 build_GCC() {
+	# Work around crazy code generator in GCC that confuses CLANG.
+	$CC --version | grep clang &>/dev/null &&
+		HOSTCFLAGS="$HOSTCFLAGS -fbracket-depth=1024"
+
 	# GCC does not honor HOSTCFLAGS at all. CFLAGS are used for
 	# both target and host object files.
 	# There's a work-around called CFLAGS_FOR_BUILD and CFLAGS_FOR_TARGET
 	# but it does not seem to work properly. At least the host library
 	# libiberty is not compiled with CFLAGS_FOR_BUILD.
+	# Also set the CXX version of the flags because GCC is now compiled
+	# using C++.
 	CC="$CC" CFLAGS_FOR_TARGET="-O2 -Dinhibit_libc" CFLAGS="$HOSTCFLAGS" \
-		CFLAGS_FOR_BUILD="$HOSTCFLAGS" ../gcc-${GCC_VERSION}/configure \
+		CFLAGS_FOR_BUILD="$HOSTCFLAGS" CXXFLAGS="$HOSTCFLAGS" \
+		CXXFLAGS_FOR_BUILD="$HOSTCFLAGS" ../gcc-${GCC_VERSION}/configure \
 		--prefix=$TARGETDIR --libexecdir=$TARGETDIR/lib \
 		--target=${TARGETARCH} --disable-werror --disable-shared \
 		--enable-lto --enable-plugins --enable-gold --enable-ld=default \



More information about the coreboot-gerrit mailing list