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: DT_TEXTREL vs IFUNC


On Sat, Mar 18, 2017 at 10:03:14AM +0100, Andreas Schwab wrote:
> On Mär 18 2017, Alan Modra <amodra@gmail.com> wrote:
> 
> > This patch teaches PowerPC ld to detect the situation, and warn.
> 
> Isn't that a generic problem?

Indeed, but other target's ifunc handling code is quite different to
PowerPC.  I'm leaving it to the various port maintainers to
implement, if they consider it important.

Note that the likelihood of hitting this problem depends on the target
support for non-PIC in PIEs or shared libraries.  On PowerPC64 we can
do that.  On x86_64 you typically get "relocation R_X86_64_32 ... can
not be used when making a shared object".  (One of the reasons that
PowerPC64 supports non-PIC is that the code itself is always PIC.
However, we still get TEXTREL due to relocations in .rodata, part of
the text segment.)

I haven't yet implemented the checks in gold for PowerPC because the
usual way this situation arises is when someone accidentally specifies
both -static and -pie, or -static and -shared.  Gold errors on those
combinations.

-- 
Alan Modra
Australia Development Lab, IBM


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