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