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