buildgcc: Always set HOSTCFLAGS

Always set HOSTCFLAGS to the flags GMP was built with, defaulting to
"-Os" if it isn't built yet. Previously, if GMP was already built or
not even in the list of packages to be built, this was silently skipped
and other packages were built with empty HOSTCFLAGS.

Change-Id: I29b2ea75283410a6cea60dc1c92b87573aebfb34
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/13550
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
index 57eb512..3cee8f6 100755
--- a/util/crossgcc/buildgcc
+++ b/util/crossgcc/buildgcc
@@ -404,18 +404,28 @@
 EOF
 }
 
+have_hostcflags_from_gmp() {
+	grep -q __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h >/dev/null 2>&1
+}
+
+set_hostcflags_from_gmp() {
+	# Now set CFLAGS to match GMP CFLAGS but strip out -pedantic
+	# as GCC 4.6.x fails if it's there.
+	export HOSTCFLAGS=$(grep __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h |cut -d\" -f2 |\
+	    sed s,-pedantic,,)
+}
+
 build_GMP() {
-	CC="$CC" CFLAGS="-Os" ../${GMP_DIR}/configure --disable-shared --enable-fat --prefix=$TARGETDIR $OPTIONS \
+	CC="$CC" CFLAGS="$HOSTCFLAGS" \
+		../${GMP_DIR}/configure --disable-shared --enable-fat \
+		--prefix=$TARGETDIR $OPTIONS \
 		|| touch .failed
 	$MAKE $JOBS || touch .failed
 	$MAKE install DESTDIR=$DESTDIR || touch .failed
 
 	normalize_dirs
 
-	# Now set CFLAGS to match GMP CFLAGS but strip out -pedantic
-	# as GCC 4.6.x fails if it's there.
-	export HOSTCFLAGS=$(grep __GMP_CFLAGS $DESTDIR$TARGETDIR/include/gmp.h |cut -d\" -f2 |\
-	    sed s,-pedantic,,)
+	set_hostcflags_from_gmp
 }
 
 build_MPFR() {
@@ -778,6 +788,11 @@
 fi
 fi # GCC
 
+export HOSTCFLAGS="-Os"
+if have_hostcflags_from_gmp; then
+	set_hostcflags_from_gmp
+fi
+
 if [ "$USECCACHE" = 1 ]; then
 	CC="ccache $CC"
 fi