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: