//
// 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) }
}