Allow rom to grow beyond 64K.
[seabios.git] / src / rombios.lds.S
index c17d0f059db966d4db0685d90eef2a61d36f20f6..8400732e39bde82309e5206b1cb449ecd72eb377 100644 (file)
@@ -1,22 +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.
 
-#include "config.h"
+#include "config.h" // BUILD_BIOS_ADDR
 
-OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
+OUTPUT_FORMAT("elf32-i386")
 OUTPUT_ARCH("i386")
-ENTRY(post32);
+ENTRY(post32)
 SECTIONS
 {
         .text code32_start : {
-                *(.text)
+                *(.text32)
 
-                . = code16_start ;
-                final_code16_start = . ;
+                . = code16_start + BUILD_BIOS_ADDR - code32_start ;
                 *(.text16)
+                final_code16_end = . ;
+                }
+        /DISCARD/ : {
+                *(.text*) *(.data*) *(.bss*) *(.rodata*)
+                *(COMMON) *(.discard*) *(.eh_frame)
                 }
-        /DISCARD/ : { *(.discard*) }
 }