4.4BSD/usr/src/contrib/gcc-2.3.3/config/dpx2.ifile

/*
 *      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 refering 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 : { }
	}
}