xref: /openbsd-src/gnu/usr.bin/binutils/ld/scripttempl/psos.sc (revision 191aa56503508614b4308d555aa5d4ae85ef3df7)
1*191aa565Sniklascat <<EOF
2*191aa565SniklasOUTPUT_FORMAT(${OUTPUT_FORMAT})
3*191aa565SniklasOUTPUT_ARCH(${ARCH})
4*191aa565Sniklas${RELOCATING+${LIB_SEARCH_DIRS}}
5*191aa565Sniklas
6*191aa565SniklasSECTIONS
7*191aa565Sniklas{
8*191aa565Sniklas  .text ${RELOCATING:-0} ${RELOCATING+${TEXT_START_ADDR}} : {
9*191aa565Sniklas    ${RELOCATING+ start = DEFINED(_START) ? _START : DEFINED(_start) ? _start : .;}
10*191aa565Sniklas    ${RELOCATING+ PROVIDE(__text = .);}
11*191aa565Sniklas    *(.text);
12*191aa565Sniklas    *(code);
13*191aa565Sniklas    *(const);
14*191aa565Sniklas    *(strings);
15*191aa565Sniklas    *(pSOS);
16*191aa565Sniklas    *(pROBE);
17*191aa565Sniklas    *(pNA);
18*191aa565Sniklas    *(pHILE);
19*191aa565Sniklas    *(pREPC);
20*191aa565Sniklas    *(pRPC);
21*191aa565Sniklas    ${CONSTRUCTING+ ___CTOR_LIST__ = .;}
22*191aa565Sniklas    ${CONSTRUCTING+ LONG((___CTOR_END__ - ___CTOR_LIST__) / 4 - 2)}
23*191aa565Sniklas    ${CONSTRUCTING+ *(.ctors)}
24*191aa565Sniklas    ${CONSTRUCTING+ LONG(0);}
25*191aa565Sniklas    ${CONSTRUCTING+ ___CTOR_END__ = .;}
26*191aa565Sniklas    ${CONSTRUCTING+ ___DTOR_LIST__ = .;}
27*191aa565Sniklas    ${CONSTRUCTING+ LONG((___DTOR_END__ - ___DTOR_LIST__) / 4 - 2);}
28*191aa565Sniklas    ${CONSTRUCTING+ *(.dtors);}
29*191aa565Sniklas    ${CONSTRUCTING+ LONG(0);}
30*191aa565Sniklas    ${CONSTRUCTING+ ___DTOR_END__ = .;}
31*191aa565Sniklas    ${RELOCATING+ PROVIDE(__etext = .);}
32*191aa565Sniklas    ${RELOCATING+ PROVIDE(_etext = .);}
33*191aa565Sniklas  }
34*191aa565Sniklas  .data ${RELOCATING:-0} : ${RELOCATING+ AT(ADDR(.text) + SIZEOF(.text))} {
35*191aa565Sniklas    ${RELOCATING+ PROVIDE(__data = .);}
36*191aa565Sniklas    *(.data);
37*191aa565Sniklas    *(vars);
38*191aa565Sniklas    ${RELOCATING+ PROVIDE(__edata = .);}
39*191aa565Sniklas    ${RELOCATING+ PROVIDE(_edata = .);}
40*191aa565Sniklas  }
41*191aa565Sniklas  .bss ${RELOCATING:-0} :
42*191aa565Sniklas  {
43*191aa565Sniklas    ${RELOCATING+ PROVIDE(__bss = .);}
44*191aa565Sniklas    *(.bss);
45*191aa565Sniklas    *(zerovars);
46*191aa565Sniklas    *(COMMON);
47*191aa565Sniklas    ${RELOCATING+ PROVIDE(__ebss = .);}
48*191aa565Sniklas    ${RELOCATING+ PROVIDE(__end = .);}
49*191aa565Sniklas    ${RELOCATING+ PROVIDE(_end = .);}
50*191aa565Sniklas    ${RELOCATING+ PROVIDE(_FreeMemStart = .);}
51*191aa565Sniklas  }
52*191aa565Sniklas  .stab 0 ${RELOCATING+(NOLOAD)} :
53*191aa565Sniklas  {
54*191aa565Sniklas    *(.stab);
55*191aa565Sniklas  }
56*191aa565Sniklas  .stabstr 0 ${RELOCATING+(NOLOAD)} :
57*191aa565Sniklas  {
58*191aa565Sniklas    *(.stabstr);
59*191aa565Sniklas  }
60*191aa565Sniklas}
61*191aa565SniklasEOF
62