Author: myles Date: 2009-02-10 22:12:35 +0100 (Tue, 10 Feb 2009) New Revision: 3935
Modified: trunk/payloads/libpayload/bin/lpgcc Log: Fix bayou payload execution.
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
Modified: trunk/payloads/libpayload/bin/lpgcc =================================================================== --- trunk/payloads/libpayload/bin/lpgcc 2009-02-10 21:09:03 UTC (rev 3934) +++ trunk/payloads/libpayload/bin/lpgcc 2009-02-10 21:12:35 UTC (rev 3935) @@ -39,6 +39,8 @@ # 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 @@ shift continue ;; + -Wl,-T,*) + _LDSCRIPT="$1" + shift + continue + ;; *) ;; esac @@ -90,7 +97,7 @@
_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