d4691e641b
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
46 lines
1.4 KiB
Plaintext
46 lines
1.4 KiB
Plaintext
/*
|
|
* svr3z.ifile - for collectless G++ on i386 System V.
|
|
* Leaves memory unconfigured at address 0.
|
|
*
|
|
* Install this file as $prefix/gcc-lib/TARGET/VERSION/gccz.ifile
|
|
*
|
|
* 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 ( 0x400000 | 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(0x400200) BLOCK (0x200) :
|
|
{
|
|
/* plenty for room for headers */
|
|
*(.init)
|
|
*(.text)
|
|
vfork = fork; /* I got tired of editing peoples sloppy code */
|
|
*(.fini)
|
|
}
|
|
GROUP BIND( NEXT(0x400000) + (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 : { }
|
|
}
|
|
}
|