|
|
1.1 root 1: /*
2: * svr3z.ifile - for collectless G++ on i386 System V.
3: * Leaves memory unconfigured at address 0.
4: *
5: * Install this file as $prefix/gcc-lib/TARGET/VERSION/gccz.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 excludes page 0 from being mapped. The value
11: * used for BLOCK should be or'd into this value. Here I'm setting BLOCK
12: * to 0x200 and BIND to ( 0x400000 | 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(0x400200) 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: }
31: GROUP BIND( NEXT(0x400000) + (ADDR(.text) + (SIZEOF(.text)) % 0x1000)):
32: {
33: .data : {
34: __CTOR_LIST__ = . ;
35: . += 4 ; /* leading NULL */
36: *(.ctor)
37: . += 4 ; /* trailing NULL */
38: __DTOR_LIST__ = . ;
39: . += 4 ; /* leading NULL */
40: *(.dtor)
41: . += 4 ; /* trailing NULL */
42: }
43: .bss : { }
44: }
45: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.