]>
Commit | Line | Data |
---|---|---|
37fe0bc5 RM |
1 | /* |
2 | * svr3.ifile - for collectless G++ on i386 System V. | |
3 | * Leaves memory configured at address 0. | |
4 | * | |
5 | * Install this file as $prefix/gcc-lib/TARGET/VERSION/gcc.ifile | |
6 | * | |
7 | * BLOCK to an offset that leaves room for many headers ( the value | |
8 | * here allows for a file header, an outheader, and up to 11 section | |
9 | * headers on most systems. | |
10 | * BIND to an address that includes page 0 in mapped memory. The value | |
11 | * used for BLOCK should be or'd into this value. Here I'm setting BLOCK | |
12 | * to 0x200 and BIND to ( value_used_for(BLOCK) ) | |
13 | * If you are using shared libraries, watch that you don't overlap the | |
14 | * address ranges assigned for shared libs. | |
15 | * | |
16 | * GROUP BIND to a location in the next segment. Here, the only value | |
17 | * that you should change (I think) is that within NEXT, which I've set | |
18 | * to my hardware segment size. You can always use a larger size, but not | |
19 | * a smaller one. | |
20 | */ | |
21 | SECTIONS | |
22 | { | |
23 | .text BIND(0x000200) BLOCK (0x200) : | |
24 | { | |
25 | /* plenty for room for headers */ | |
26 | *(.init) | |
27 | *(.text) | |
28 | vfork = fork; /* I got tired of editing peoples sloppy code */ | |
29 | *(.fini) | |
30 | } | |
7609251b RK |
31 | .stab BIND(ADDR(.text) + SIZEOF(.text)): { } |
32 | .stabstr BIND(ADDR(.stab) + SIZEOF(.stab)): { } | |
33 | GROUP BIND( NEXT(0x400000) + | |
34 | (ADDR(.stabstr) + (SIZEOF(.stabstr)) % 0x1000)): | |
37fe0bc5 RM |
35 | { |
36 | .data : { | |
37 | __CTOR_LIST__ = . ; | |
38 | . += 4 ; /* leading NULL */ | |
39 | *(.ctor) | |
40 | . += 4 ; /* trailing NULL */ | |
41 | __DTOR_LIST__ = . ; | |
42 | . += 4 ; /* leading NULL */ | |
43 | *(.dtor) | |
44 | . += 4 ; /* trailing NULL */ | |
45 | } | |
46 | .bss : { } | |
47 | } | |
48 | } |