Signed-off-by: Robert Millan <rmh@aybabtu.com>
authorRobert Millan <rmh@aybabtu.com>
Tue, 11 Nov 2008 23:36:12 +0000 (23:36 +0000)
committerJordan Crouse <jordan.crouse@amd.com>
Tue, 11 Nov 2008 23:36:12 +0000 (23:36 +0000)
Acked-by: Jordan Crouse <jordan@cosmicpenguin.net>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3748 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/bin/lpgcc

index da8b48115532a15c93fea2d8e1a7cb494599abfe..691ec15f43cf04b7c9601308b1f38590bfde9574 100755 (executable)
@@ -101,8 +101,13 @@ if [ $DOLINK -eq 0 ]; then
 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"
     fi
 
-    $DEFAULT_CC $_CFLAGS $_LDFLAGS $CMDLINE $_LIBDIR/i386/head.o $_LIBDIR/libpayload.a $_LIBGCC
+    # Note: i386/head.o must be the first object being linked, because it
+    # contains a Multiboot header.  The Multiboot standard requires this
+    # header to be placed below 0x2000 in the resulting image.  See:
+    # http://www.gnu.org/software/grub/manual/multiboot/html_node/OS-image-format.html
+
+    $DEFAULT_CC $_CFLAGS $_LDFLAGS $_LIBDIR/i386/head.o  $CMDLINE $_LIBDIR/libpayload.a $_LIBGCC
 fi