On Tue, Jan 27, 2009 at 09:33:17AM -0800, Steve Ellcey wrote: > On Tue, 2009-01-27 at 12:31 +0100, Andi Kleen wrote: > > Steve Ellcey <s...@cup.hp.com> writes: > > > > > because the crt files can't handle the large code model if they aren't > > > compiled with this option. > > > > My understanding is that this would likely break old linkers which > > didn't do all large model relocations correctly. Right now they > > work as long as you don't need the large model. > > Are these old GNU linkers or old system/non-GNU linkers? We often
(not that old actually) GNU linkers. > require a certain minimum version of binutils for GCC to work. That would be pretty extreme for something as obscure as large model. > > > BTW the standard way to work around large model issues if your > > code isn't really that large but you just want to move it is to move > > parts of the programs into a .so and compile -fPIC. large is only > > really needed if you really have gigantic programs (but then gcc > > tends to be also quite slow on them) > > It's not really a gigantic program, it is a program where he wants to > put all his text in the upper address range (using the --section-start > option of the GNU linker). He'll get much better code by putting the program into a -fPIC .so, loading it from a small stub and then unmap the stub. large model generates really very bad code because all jumps will be indirect. -Andi -- a...@linux.intel.com -- Speaking for myself only.