| /* |
| * dpx2.ifile - for collectless G++ on Bull DPX/2 |
| * |
| * Peter Schauer <Peter.Schauer@regent.e-technik.tu-muenchen.dbp.de> |
| * |
| * Install this file as $prefix/gcc-lib/dpx2/VERSION/gcc.ifile |
| * and comment out the lines referring to COLLECT at the top |
| * of Makefile before building GCC. |
| * |
| * This file has been tested with gcc-2.2.2 on a DPX/2 340 |
| * running BOS 2.00.45, if it doesn't work for you, stick |
| * with collect. |
| * --sjg |
| */ |
| /* |
| * Ifile to link with memory configured at 0. |
| * BLOCK to an offset that leaves room for many headers ( the value |
| * here allows for a file header, an outheader, and up to 11 section |
| * headers on most systems. |
| * BIND to an address that excludes page 0 from being mapped. The value |
| * used for BLOCK should be or'd into this value. Here I'm setting BLOCK |
| * to 0x200 and BIND to ( 0x100000 | value_used_for(BLOCK) ) |
| * If you are using shared libraries, watch that you don't overlap the |
| * address ranges assigned for shared libs. |
| * |
| * GROUP BIND to a location in the next segment. Here, the only value |
| * that you should change (I think) is that within NEXT, which I've set |
| * to my hardware segment size. You can always use a larger size, but not |
| * a smaller one. |
| */ |
| SECTIONS |
| { |
| .text BIND(0x100200) BLOCK (0x200) : |
| { |
| /* plenty of room for headers */ |
| *(.init) |
| *(.text) |
| _vfork = _fork; /* I got tired of editing peoples sloppy code */ |
| *(.fini) |
| } |
| GROUP BIND( NEXT(0x100000) + (ADDR(.text) + (SIZEOF(.text)) % 0x1000)): |
| { |
| .data : { |
| ___CTOR_LIST__ = . ; |
| . += 4 ; /* leading NULL */ |
| *(.ctor) |
| . += 4 ; /* trailing NULL */ |
| ___DTOR_LIST__ = . ; |
| . += 4 ; /* leading NULL */ |
| *(.dtor) |
| . += 4 ; /* trailing NULL */ |
| } |
| .bss : { } |
| } |
| } |