Can objdump show friendly symbolic function name?
Richard Sandiford
rdsandiford@googlemail.com
Wed Jul 21 19:47:00 GMT 2010
"Maciej W. Rozycki" <macro@linux-mips.org> writes:
> On Tue, 20 Jul 2010, David Daney wrote:
>
>> > Support for large GOT has been defined since the beginning of the MIPS
>> > ELF ABI (GOTHI16/GOTLO16 relocations etc.), but I have been told it
>> > requires all the dependent libraries (down to libc) to be rebuilt (never
>> > analysed that myself), at which point you have to rebuild the whole system
>> > or create another set of multilibs. Given a large GOT has a considerable
>> > performance hit, it does not sound like a good idea to make all the
>> > programs in a system suffer to serve the few offenders.
>>
>> That is not the case.
>>
>> Case in point (before multi-got bugs were fixed), I had reliably working on
>> mipsel-linux (o32):
>>
>> Application: no -mxgot
>> libc.so.6/libpthread.so.???: no -mxgot
>> other .so files: no -mxgot.
>> libgcj.so.???: -mxgot.
>>
>>
>> As far as I know, you can mix -mxgot and non -mxgot executables and shared
>> objects.
>
> So what was the fuss about when Mozilla (or whatever monstrous program
> that was) failed to compile with standard GOT one day then? Why didn't
> they simply build whatever the failing object was with -mxgot and the
> multi-GOT scheme was added to binutils instead? It looks to me like an
> overkill solution was chosen, so surely there must have been a reason.
I don't recall multi-GOT being motivated by a single program, although
I could be wrong. It was something that SGI tools did well before ours,
and ISTR one of Red Hat's customers specifically wanted the same feature
on GNU/Linux.
Alex seems to suggest that gdb failed to build on IRIX without it:
http://sourceware.org/ml/binutils/2003-01/msg00165.html
IMO, multi-GOT's a nice, efficient way of building big shared libraries
(which seem to be all the rage these days ;-)). It makes the overhead
of -mxgot redundant unless (a) you've got a humungous function or
(b) you "need" to create big intermediate objects with -r. Plus it's
easier to use: no need to recompile objects until everything magically
fits.
Richard
More information about the Binutils
mailing list