Allow rom to grow beyond 64K.
[seabios.git] / src / rombios.lds.S
index e43822ae1af0b9dfe7fdc30fffbb5dee2710a7cc..8400732e39bde82309e5206b1cb449ecd72eb377 100644 (file)
@@ -1,20 +1,25 @@
 // Linker definitions for merging 16 and 32 bit code
 //
-// Copyright (C) 2008  Kevin O'Connor <kevin@koconnor.net>
+// Copyright (C) 2008,2009  Kevin O'Connor <kevin@koconnor.net>
 //
 // This file may be distributed under the terms of the GNU LGPLv3 license.
 
-OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
+#include "config.h" // BUILD_BIOS_ADDR
+
+OUTPUT_FORMAT("elf32-i386")
 OUTPUT_ARCH("i386")
-ENTRY(post32);
+ENTRY(post32)
 SECTIONS
 {
         .text code32_start : {
-                *(.text)
+                *(.text32)
 
-                . = code16_start ;
+                . = code16_start + BUILD_BIOS_ADDR - code32_start ;
                 *(.text16)
                 final_code16_end = . ;
                 }
-        /DISCARD/ : { *(.discard*) }
+        /DISCARD/ : {
+                *(.text*) *(.data*) *(.bss*) *(.rodata*)
+                *(COMMON) *(.discard*) *(.eh_frame)
+                }
 }