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