Geert Uytterhoeven wrote: [snip] > > 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...
It will give at least some more space. I don't think it's possible to extend o32 beyond that limit without breaking binarry compatibility. Thiemo

