summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Jones <marc.jones@amd.com>2008-09-30 17:09:44 +0000
committerMarc Jones <marc.jones@amd.com>2008-09-30 17:09:44 +0000
commitdc65196f8f18c28085d40ccbeb45bba3bfe28294 (patch)
treeb7dff88f7a5f885537cc90a76265bca05fc8cf73
parent336935c378a865feffe09033c34b6a7790d8a99b (diff)
Add an abuild command line option for -fno-stack-protect for toolchains that might require it.
Signed-off-by: Marc Jones <marc.jones@amd.com> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3623 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rwxr-xr-xutil/abuild/abuild12
1 files changed, 11 insertions, 1 deletions
diff --git a/util/abuild/abuild b/util/abuild/abuild
index 2d1382acca..19476dfbec 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -43,6 +43,9 @@ mode=text
# this is disabled per default but can be enabled with -s
silent=
+# stackprotect mode enabled by -ns option.
+stackprotect=false
+
ARCH=`uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ -e s/x86_64/amd64/ \
-e "s/Power Macintosh/ppc/"`
@@ -322,8 +325,13 @@ function build_target
CC='$(CROSS_COMPILE)gcc'
CROSS_COMPILE=''
fi
- HOSTCC='gcc'
+
+ if [ "$stackprotect" = "true" ]; then
+ CC="$CC -fno-stack-protector"
+ fi
+ HOSTCC='gcc'
+
printf "Processing mainboard/$VENDOR/$MAINBOARD"
xml "<mainboard>"
@@ -468,6 +476,7 @@ function myhelp
printf " [-T|--test] submit image(s) to automated test system\n"
printf " [-c|--cpus <numcpus>] build on <numcpus> at the same time\n"
printf " [-s|--silent] omit compiler calls in logs\n"
+ printf " [-ns|--nostackprotect] use gcc -fno-stack-protector option\n"
printf " [lbroot] absolute path to coreboot sources\n"
printf " (defaults to $LBROOT)\n\n"
}
@@ -524,6 +533,7 @@ while true ; do
-T|--test) shift; hwtest=true;;
-c|--cpus) shift; cpus="$1"; test "$cpus" == "max" && cpus=""; shift;;
-s|--silent) shift; silent="-s";;
+ -ns|--nostackprotect) shift; stackprotect=true;;
--) shift; break;;
-*) printf "Invalid option\n\n"; myhelp; exit 1;;
*) break;;