Fix bayou payload execution.
authorUlf Jordan <jordan@chalmers.se>
Tue, 10 Feb 2009 21:12:35 +0000 (21:12 +0000)
committerMyles Watson <mylesgw@gmail.com>
Tue, 10 Feb 2009 21:12:35 +0000 (21:12 +0000)
Bayou must link with its own ldscript to end up at a load address that
doesn't interfere with payloads. Make Bayou's ldscript MB compatible, so
the link with libpayload/lib/i386/head.o succeeds.

Signed-off-by: Ulf Jordan <jordan@chalmers.se>
Acked-by: Jordan Crouse <jordan@cosmicpenguin.net>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3935 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/bin/lpgcc

index 691ec15f43cf04b7c9601308b1f38590bfde9574..35cc470e684dbb02cfb07f3e63595a60df641b26 100755 (executable)
@@ -39,6 +39,8 @@ BASE=`dirname $0`
 # This will set the _LIBDIR and _INCDIR variables used below
 . $BASE/lp.functions
 
+_LDSCRIPT="-Wl,-T,$_LIBDIR/libpayload.ldscript"
+
 trygccoption() {
        $DEFAULT_CC $1 -S -xc /dev/null -o .$$.tmp &> /dev/null
        RET=$?
@@ -73,6 +75,11 @@ while [ $# -gt 0 ]; do
                shift
                continue
                ;;
+           -Wl,-T,*)
+               _LDSCRIPT="$1"
+               shift
+               continue
+               ;;
            *)
                ;;
        esac
@@ -90,7 +97,7 @@ trygccoption -fno-stack-protector
 
 _CFLAGS="$_CFLAGS -I`$DEFAULT_CC -m32 -print-search-dirs | head -n 1 | cut -d' ' -f2`include"
 
-_LDFLAGS="-Wl,-T,$_LIBDIR/libpayload.ldscript -static"
+_LDFLAGS="$_LDSCRIPT -static"
 
 if [ $DOLINK -eq 0 ]; then
     if [ $DEBUGME -eq 1 ]; then