1OUTPUT_FORMAT("binary", "binary", "binary") 2OUTPUT_ARCH(m68k) 3ENTRY(start) 4SEARCH_DIR(/usr/lib); 5/*__DYNAMIC = 0; */ 6PROVIDE (__stack = 0); 7SECTIONS 8{ 9 . = TEXTADDR; 10 .text : 11 ALIGN(2) 12 SUBALIGN(2) 13 { 14 CREATE_OBJECT_SYMBOLS 15 *(.text) 16 *(.rodata) 17 /* The next six sections are for SunOS dynamic linking. The order 18 is important. */ 19 *(.dynrel) 20 *(.hash) 21 *(.dynsym) 22 *(.dynstr) 23 *(.rules) 24 *(.need) 25 etext = .; 26 _etext = .; 27 } 28 .data : 29 ALIGN(2) 30 SUBALIGN(2) 31 { 32 /* The first three sections are for SunOS dynamic linking. */ 33 *(.dynamic) 34 *(.got) 35 *(.plt) 36 *(.data) 37 *(.linux-dynamic) /* For Linux dynamic linking. */ 38 CONSTRUCTORS 39 edata = .; 40 _edata = .; 41 } 42 . = TEXTADDR + TEXTDATASIZE; 43 44 /* Place uint32_t startregs[16] out of bss */ 45 PROVIDE(startregs = .); 46 . += 0x40/* sizeof(startregs) */; 47 48 .bss : 49 { 50 __bss_start = .; 51 *(.bss) 52 *(COMMON) 53 end = ALIGN(4) ; 54 _end = ALIGN(4) ; 55 } 56 /DISCARD/ : { *(.ident) *(.stab) *(.stabstr) } 57} 58 59ASSERT(first_kbyte - TEXTADDR <= 1024, "Error: first_kbyte exceeds 1KB"); 60ASSERT(_end <= BOOT_TEXTADDR, "Error: _end conflicts BOOT_TEXT"); 61