[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: c++ problems - konqueror, etc.



On Mon, 28 Oct 2002, Thiemo Seufer wrote:
> Jan-Hendrik Palic wrote:
> > On Wed, Oct 23, 2002 at 07:34:16PM +0200, Guido Guenther wrote:
> > >On Wed, Oct 23, 2002 at 06:59:07PM +0200, Jan-Hendrik Palic wrote:
> > >> What about big C++ progs like Mozilla, are they running with gcc-3.2.x
> > >> on MIPS?
> > >Nope. This is a completely different issue (the global offset table
> > >isn't big enough to hold all the relocation entries). We need multi got
> > >support (or n32 ABI) to fix this.
> 
> AFAICS any of these will break binary compatibility.
> 
> > I had to ask this several time, I met you ;)
> > Where can I find docs about this and especially this issue!
> 
> An o32 GOT table can have a maximum size of 64kB (16k entries)
> because that's the maximum offset a load instruction accepts:
> 
> 	lw	$reg, <offset>($gp)
> 
> loads the address of an data item from the GOT. GAS/GLD is currently
> very wasteful with these precious GOT entries, any entry which _could_
> be needed is allocated. There is no reference counting to drop unneeded
> GOT entries lateron. This leads to GOT overflow for very large
> executables or libraries.
> 
> The right way to solve it would be to implement GOT reference
> counting in MIPS binutils. Hope that helps :-)

But even then the GOT will overflow eventually. 16k entries is not that much...

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



Reply to: