Hi,
Multiboot header in libpayload is at a too high location (>0x2000), which breaks the standard (GRUB checks for the header and refuses to load if a header could not be found below 0x2000).
Attached patch fixes the problem by reordering the objects in link command.
On Tue, Nov 11, 2008 at 09:42:56PM +0100, Robert Millan wrote:
Hi,
Multiboot header in libpayload is at a too high location (>0x2000), which breaks the standard (GRUB checks for the header and refuses to load if a header could not be found below 0x2000).
Attached patch fixes the problem by reordering the objects in link command.
-- Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all."
Signed-off-by: Robert Millan rmh@aybabtu.com
Index: libpayload/bin/lpgcc
--- libpayload/bin/lpgcc (revision 3744) +++ libpayload/bin/lpgcc (working copy) @@ -101,8 +101,8 @@ else _LIBGCC=`$DEFAULT_CC -m32 -print-libgcc-file-name` if [ $DEBUGME -eq 1 ]; then
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $CMDLINE $_LIBDIR/i386/head.o $_LIBDIR/libpayload.a $_LIBGCC"
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC"
Please also add a comment here, this is highly non-obvious from just looking at the file's contents otherwise.
fi
- $DEFAULT_CC $_CFLAGS $_LDFLAGS $CMDLINE $_LIBDIR/i386/head.o $_LIBDIR/libpayload.a $_LIBGCC
- $DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC
fi
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On Tue, Nov 11, 2008 at 10:04:57PM +0100, Uwe Hermann wrote:
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $CMDLINE $_LIBDIR/i386/head.o $_LIBDIR/libpayload.a $_LIBGCC"
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC"
Please also add a comment here, this is highly non-obvious from just looking at the file's contents otherwise.
Done.
Robert Millan wrote:
On Tue, Nov 11, 2008 at 10:04:57PM +0100, Uwe Hermann wrote:
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $CMDLINE $_LIBDIR/i386/head.o $_LIBDIR/libpayload.a $_LIBGCC"
- echo "$DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC"
Please also add a comment here, this is highly non-obvious from just looking at the file's contents otherwise.
Done.
This works, as long as nobody adds 8k of cruft to the head.S file, which I seriously doubt. This will change the entry point of the ELF, so those of you used to debugging payloads may be in for a bit of surprise.
Acked-by: Jordan Crouse jordan@cosmicpenguin.net
r3748
Thanks.