f0bb3a0f8dc0e493b1564b3598147961bc7b3e7b
[fw/sdcc] / support / cpp / 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         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 }