Add -Werror to xcompile's testcc
[coreboot.git] / util / xcompile / xcompile
index 0c5da65de86f726129de6d0e1fe066694c0d356f..49263941dfa10d9d1ae47d884b661fa960f76ed1 100644 (file)
@@ -21,7 +21,7 @@
 testcc()
 {
        echo "_start(void) {}" > .$$$$.c
-       $1 -nostdlib $2 .$$$$.c -o .$$$$.tmp 2>/dev/null >/dev/null
+       $1 -nostdlib -Werror $2 .$$$$.c -o .$$$$.tmp 2>/dev/null >/dev/null
        ret=$?
        rm -f .$$$$.c .$$$$.tmp
        return $ret
@@ -35,13 +35,15 @@ for make in make gmake gnumake; do
 done
 
 GCCPREFIX=invalid
+XGCCPATH=${1:-"`pwd`/util/crossgcc/xgcc/bin/"}
+echo '#XGCCPATH='${XGCCPATH}
 TMPFILE=`mktemp /tmp/temp.XXXX 2>/dev/null || echo /tmp/temp.78gOIUGz`
 touch $TMPFILE
 
 # This should be a loop over all supported architectures
 TARCH=i386
 TWIDTH=32
-for gccprefixes in `pwd`/util/crossgcc/xgcc/bin/${TARCH}-elf- ${TARCH}-elf- ""; do
+for gccprefixes in ${XGCCPATH}${TARCH}-elf- ${TARCH}-elf- ""; do
        if ! which ${gccprefixes}as 2>/dev/null >/dev/null; then
                continue
        fi
@@ -78,6 +80,10 @@ CC="${GCCPREFIX}gcc"
 testcc "$CC" "$CFLAGS-Wa,--divide " && CFLAGS="$CFLAGS-Wa,--divide "
 testcc "$CC" "$CFLAGS-fno-stack-protector " && CFLAGS="$CFLAGS-fno-stack-protector "
 testcc "$CC" "$CFLAGS-Wl,--build-id=none " && CFLAGS="$CFLAGS-Wl,--build-id=none "
+# GCC 4.6 is much more picky about unused variables. Turn off it's warnings for
+# now:
+testcc "$CC" "$CFLAGS-Wno-unused-but-set-variable " && \
+              CFLAGS="$CFLAGS-Wno-unused-but-set-variable "
 
 if which gcc 2>/dev/null >/dev/null; then
        HOSTCC=gcc
@@ -85,11 +91,16 @@ else
        HOSTCC=cc
 fi
 
+if [ "`${XGCCPATH}/iasl 2>/dev/null | grep -c ACPI`" -gt 0 ]; then
+       IASL=${XGCCPATH}iasl
+else
+       IASL=iasl
+fi
+
 cat << EOF
 # elf${TWIDTH}-${TARCH} toolchain
 AS:=${GCCPREFIX}as ${ASFLAGS}
 CC:=${GCCPREFIX}gcc ${CFLAGS}
-CPP:=${GCCPREFIX}cpp
 AR:=${GCCPREFIX}ar
 LD:=${GCCPREFIX}ld ${LDFLAGS}
 STRIP:=${GCCPREFIX}strip
@@ -97,6 +108,8 @@ NM:=${GCCPREFIX}nm
 OBJCOPY:=${GCCPREFIX}objcopy
 OBJDUMP:=${GCCPREFIX}objdump
 
+IASL:=${IASL}
+
 # native toolchain
 HOSTCC:=${HOSTCC}
 EOF