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");