[LWN Logo]
[LWN.net]
From:	 ebiederm@xmission.com (Eric W. Biederman)
To:	 Linus Torvalds <torvalds@transmeta.com>, Dave Jones <davej@suse.de>
Subject: [PATCH 2.5.12] x86 Boot enhancements, linker fixes 2/11
Date:	 02 May 2002 08:45:51 -0600
Cc:	 <linux-kernel@vger.kernel.org>

diff -uNr linux-2.5.12.boot.boot_params/arch/i386/Makefile linux-2.5.12.boot.vmlinuxlds/arch/i386/Makefile
--- linux-2.5.12.boot.boot_params/arch/i386/Makefile	Thu Apr 12 13:20:31 2001
+++ linux-2.5.12.boot.vmlinuxlds/arch/i386/Makefile	Wed May  1 09:38:47 2002
@@ -18,7 +18,7 @@
 
 LD=$(CROSS_COMPILE)ld -m elf_i386
 OBJCOPY=$(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S
-LDFLAGS=-e stext
+LDFLAGS=
 LINKFLAGS =-T $(TOPDIR)/arch/i386/vmlinux.lds $(LDFLAGS)
 
 CFLAGS += -pipe
diff -uNr linux-2.5.12.boot.boot_params/arch/i386/kernel/head.S linux-2.5.12.boot.vmlinuxlds/arch/i386/kernel/head.S
--- linux-2.5.12.boot.boot_params/arch/i386/kernel/head.S	Mon Apr 29 00:17:11 2002
+++ linux-2.5.12.boot.vmlinuxlds/arch/i386/kernel/head.S	Wed May  1 09:38:47 2002
@@ -41,7 +41,7 @@
  *
  * On entry, %esi points to the real-mode code as a 32-bit pointer.
  */
-startup_32:
+ENTRY(startup_32)
 /*
  * Set segments to known values
  */
diff -uNr linux-2.5.12.boot.boot_params/arch/i386/vmlinux.lds linux-2.5.12.boot.vmlinuxlds/arch/i386/vmlinux.lds
--- linux-2.5.12.boot.boot_params/arch/i386/vmlinux.lds	Sun Mar 10 20:09:08 2002
+++ linux-2.5.12.boot.vmlinuxlds/arch/i386/vmlinux.lds	Wed May  1 09:38:47 2002
@@ -3,7 +3,13 @@
  */
 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
 OUTPUT_ARCH(i386)
-ENTRY(_start)
+physical_startup_32 = startup_32 - 0xC0000000;
+ENTRY(physical_startup_32)
+PHDRS
+{
+	text PT_LOAD AT(0x100000);
+
+}
 SECTIONS
 {
   . = 0xC0000000 + 0x100000;
@@ -12,7 +18,7 @@
 	*(.text)
 	*(.fixup)
 	*(.gnu.warning)
-	} = 0x9090
+	} :text = 0x9090
 
   _etext = .;			/* End of text section */
 
@@ -73,8 +79,16 @@
   __bss_start = .;		/* BSS */
   .bss : {
 	*(.bss)
+        _end = . ;
+	/* Reserve space for the bootmem bitmap,
+	 * With a start at 0xC0000000 this is just 32k in the worst case.
+	 *
+	 * Ideally this would be in an initdata segment but that causes
+	 * problems with memory being reserved twice.
+	 */
+	. = ALIGN(4096);
+	. = . + 32768;
 	}
-  _end = . ;
 
   /* Sections to be discarded */
   /DISCARD/ : {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/