1# These are substituted in as variables in order to get '}' in a shell 2# conditional expansion. 3INIT='.init : { *(.init) }' 4FINI='.fini : { *(.fini) }' 5cat <<EOF 6OUTPUT_FORMAT("${OUTPUT_FORMAT}") 7OUTPUT_ARCH(${ARCH}) 8ENTRY(__start) 9${RELOCATING+${LIB_SEARCH_DIRS}} 10 11SECTIONS 12{ 13 .text ${RELOCATING+ (0x20007 + SIZEOF_HEADERS) &~ 7} : 14 { 15 ${RELOCATING+ __.text.start = .}; 16 ${RELOCATING+ __.init.start = .}; 17 ${RELOCATING+ *(.init)} 18 ${RELOCATING+ __.init.end = .}; 19 *(.text) 20 ${RELOCATING+ __.tdesc_start = .}; 21 ${RELOCATING+ *(.tdesc)} 22 ${RELOCATING+ __.text_end = .} ; 23 ${RELOCATING+ __.initp.start = .}; 24 ${RELOCATING+ __.initp.end = .}; 25 ${RELOCATING+ __.fini_start = .}; 26 ${RELOCATING+ *(.fini) } 27 ${RELOCATING+ __.fini_end = .}; 28 ${RELOCATING+_etext = .}; 29 } 30 .data ${RELOCATING+ NEXT (0x400000) + ((SIZEOF(.text) + ADDR(.text)) % 0x2000)} : 31 { 32 *(.data) 33 ${RELOCATING+_edata = .}; 34 } 35 .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : 36 { 37 *(.bss) 38 *(COMMON) 39 ${RELOCATING+ _end = .}; 40 ${RELOCATING+ __end = .}; 41 } 42 ${RELOCATING- ${INIT}} 43 ${RELOCATING- ${FINI}} 44 .comment 0 ${RELOCATING+(NOLOAD)} : 45 { 46 *(.comment) 47 } 48} 49EOF 50