/* * dpx2.ifile - for collectless G++ on Bull DPX/2 * * Peter Schauer * * 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 : { } } }