OUTPUT_FORMAT("binary", "binary", "binary")
OUTPUT_ARCH(m68k)
ENTRY(start)
SEARCH_DIR(/usr/lib);
/*__DYNAMIC = 0; */
PROVIDE (__stack = 0);
SECTIONS
{
. = TEXTADDR;
.text :
ALIGN(2)
SUBALIGN(2)
{
CREATE_OBJECT_SYMBOLS
*(.text)
*(.rodata)
/* The next six sections are for SunOS dynamic linking. The order
is important. */
*(.dynrel)
*(.hash)
*(.dynsym)
*(.dynstr)
*(.rules)
*(.need)
etext = .;
_etext = .;
}
.data :
ALIGN(2)
SUBALIGN(2)
{
/* The first three sections are for SunOS dynamic linking. */
*(.dynamic)
*(.got)
*(.plt)
*(.data)
*(.linux-dynamic) /* For Linux dynamic linking. */
CONSTRUCTORS
edata = .;
_edata = .;
}
. = TEXTADDR + TEXTDATASIZE;
/* Place uint32_t startregs[16] out of bss */
PROVIDE(startregs = .);
. += 0x40/* sizeof(startregs) */;
.bss :
{
__bss_start = .;
*(.bss)
*(COMMON)
end = ALIGN(4) ;
_end = ALIGN(4) ;
}
/DISCARD/ : { *(.ident) *(.stab) *(.stabstr) }
}
ASSERT(first_kbyte - TEXTADDR <= 1024, "Error: first_kbyte exceeds 1KB");
ASSERT(_end <= BOOT_TEXTADDR, "Error: _end conflicts BOOT_TEXT");