OSDN Git Service

2002-04-12 Eric Norum <eric.norum@usask.ca>
[pf3gnuchains/gcc-fork.git] / gcc / config / i386 / svr3.ifile
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         }
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)):
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 }