This is the mail archive of the
mailing list for the binutils project.
Re: [PATCH] S/390: STT_GNU_IFUNC support
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- Cc: binutils at sourceware dot org, amodra at gmail dot com
- Date: Mon, 2 Jul 2012 06:39:10 -0700
- Subject: Re: [PATCH] S/390: STT_GNU_IFUNC support
- References: <20120702100015.GA5115@bart>
On Mon, Jul 2, 2012 at 3:00 AM, Andreas Krebbel
> the attached patch implements support for STT_GNU_IFUNC for s390 and
> To big parts I've tried to copy the x86 approach except the following
> - PLT infos for local IFUNC symbols is stored in the target specific
> ? data area for an object file (elf_obj_tdata).
> - The iplt section is also used for dynamic linking in order to keep
> ? all the IFUNC related relocations together at the end of the
> ? rela.plt to avoid the problem described in BZ13302
> - On x86 for a non-PIE executable an error is reported when an ifunc
> ? symbol in the executable is referenced by a shared lib. For S/390
> ? the ifunc symbol in the main executable is turned into a normal
> ? STT_FUNC symbol pointing to the PLT slot of the IFUNC symbol.
What happens to IFUNC function in exectuables? If it is
turned into FUNC symbol, won't you get wrong value since
for IFUNC symbol, its real value is the return value of
the IFUNC function at run-time?
BTW, did your glibc patch passes all IFUNC tests?