1cat <<EOF
2OUTPUT_FORMAT("${OUTPUT_FORMAT}")
3OUTPUT_ARCH(${ARCH})
4ENTRY(_start)
5${RELOCATING+${LIB_SEARCH_DIRS}}
6
7SECTIONS
8{
9  .text ${RELOCATING+ 0x2000 + SIZEOF_HEADERS} :
10    {
11      ${RELOCATING+ __.text.start = .};
12      *(.text)
13      ${RELOCATING+ etext  =  .;}
14      ${RELOCATING+ _etext  =  .;}
15      ${RELOCATING+ __.text.end = .};
16      ${CONSTRUCTING+ __CTOR_LIST__ = .;}
17      ${CONSTRUCTING+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)}
18      ${CONSTRUCTING+ *(.ctors)}
19      ${CONSTRUCTING+ LONG(0)}
20      ${CONSTRUCTING+ __CTOR_END__ = .;}
21      ${CONSTRUCTING+ __DTOR_LIST__ = .;}
22      ${CONSTRUCTING+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)}
23      ${CONSTRUCTING+ *(.dtors)}
24      ${CONSTRUCTING+ LONG(0)}
25      ${CONSTRUCTING+ __DTOR_END__ = .;}
26    }
27  .data ${RELOCATING+ SIZEOF(.text) + ADDR(.text) + 0x400000} :
28    {
29      ${RELOCATING+ __.data.start = .};
30      *(.data)
31      ${RELOCATING+ edata  =  .};
32      ${RELOCATING+ _edata  =  .};
33      ${RELOCATING+ __.data.end = .};
34    }
35  .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
36    {
37      ${RELOCATING+ __.bss.start = .};
38      *(.bss)
39      *(COMMON)
40      ${RELOCATING+ __.bss.end = .};
41      ${RELOCATING+ end = ALIGN(0x8)};
42      ${RELOCATING+ _end = ALIGN(0x8)};
43    }
44  .comment ${RELOCATING+ 0} :
45    {
46      *(.comment)
47    }
48}
49EOF
50