This is the mail archive of the binutils@sources.redhat.com 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: _DYNAMIC and _GLOBAL_OFFSET_TABLE_


On Wed, Aug 27, 2003 at 09:06:53PM -0700, Ian Lance Taylor wrote:
> Alan Modra <amodra@bigpond.net.au> writes:
> > It's particularly curious given that absolute symbols are relocated
> > by current glibc ld.so.
> 
> That sounds wrong--it seems to me that an SHN_ABS symbol should always
> the value in the symbol table.  I don't understand why ld.so would
> change that.

Because absolute syms need to be special cased, and ld.so lacks the
code to do so.  All other defined syms are relocated according to their
defining object's load address.

>  It's easy to get a relocatable symbol, but how are you
> supposed to get an absolute symbol?

Exactly.  Testcase (courtesy of an IBM colleague) attached.  The
testcase also illustrates a linker bug with the handling of absolute
syms.  They shouldn't be allocated space in an apps dynbss section.

These problems are all relatively easy to fix, unless it so happens that
something relies on the current buggy ld.so relocation.

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre

Attachment: abs.tgz
Description: application/tar-gz


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