This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Can objdump show friendly symbolic function name?


"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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]