This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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: [PATCH] Remove no longer applicable assertion.


From: "Carlos O'Donell" <carlos@systemhalted.org>
Date: Fri, 6 Apr 2012 05:58:37 -0400

> So you can, but only only if ELF_DURING_STARTUP. Note that if
> ELF_DURING_STARTUP then that appears to guarantee you a DT_REL*
> because the code always merges ranges in that case.
> 
> In the general case you're right, I don't think we can assume DT_REL*
> is present in all cases. You could conceivably have no non-PLT
> relocations. In which case there is still an optimziation to be had.
> You need only check for a zero sized range[0]?

I tested this just to make sure, and indeed on platforms that don't
preserve the overlap, if you have an object that only has PLT
references you get only a JMPREL and no plain REL(A).

On platforms that keep the overlap, we'll still get both a REL(A)
and a JMPREL, both starting at the same address and both being the
same size.

As expected.

Your patch looks fine, want me to give it a spin on sparc?


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