Clock cleanups.
[seabios.git] / src / rombios16.lds.S
index 4609c1ca4ea9a8675e93d92e6ab5fc74163980e2..c52afdb784c5ad5dabecb45b822848b74f5b5fbd 100644 (file)
@@ -2,21 +2,27 @@
 //
 // Copyright (C) 2008  Kevin O'Connor <kevin@koconnor.net>
 //
-// This file may be distributed under the terms of the GNU GPLv3 license.
+// 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_ARCH("i386")
 SECTIONS
 {
-        .text16 ( _code32_code16_start - BUILD_BIOS_ADDR ) : {
-                *(.text)
-                *(.rodata*)
-                *(.data)
-                }
+        . = ( _code32_code32_end - BUILD_BIOS_ADDR ) ;
+        . = ALIGN(16) ;
+        code16_start = . ;
+        .text16 : {
+
+// The actual placement of the 16bit sections is determined by the
+// script tools/layoutrom.py
+#include "../out/romlayout.lds"
 
-        .text16.fixed.addr BUILD_START_FIXED : {
-                *(.text.fixed.addr)
                 }
+        code16_end = . ;
+
+        // Discard regular data sections to force a link error if
+        // 16bit code attempts to access data not marked with VAR16.
+        /DISCARD/ : { *(.text*) *(.rodata*) *(.data*) *(.bss*) *(COMMON) }
 }