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] powerpc: fix ifunc-sel.h with GCC 6


On Fri, Jul 22, 2016 at 11:25:38AM -0300, Tulio Magno Quites Machado Filho wrote:
> Aurelien Jarno <aurelien@aurel32.net> writes:
> 
> > On 2016-07-22 13:06, Alan Modra wrote:
> >> On Thu, Jul 21, 2016 at 02:48:09PM -0300, Tulio Magno Quites Machado Filho wrote:
> >> > Aurelien Jarno <aurelien@aurel32.net> writes:
> >> > > 	* sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Replace beqlr instructions
> >> > > 	by beq instructions jumping to the end of the function.
> >> > 
> >> > I'd prefer to remove this file.
> >> > 
> >> > Alan, do we still need this file?
> >> 
> >> To do without it, I think you'd need to bump the glibc binutils
> >> requirement to 2.24, in order to have this linker fix:
> >> https://sourceware.org/ml/binutils/2013-03/msg00299.html
> 
> Great!  Thanks!
> I run some tests on ppc, ppc64 and ppc64le without this file and I noticed
> just one failure from elf/ifuncmain6pie using Binutils 2.26.1 on ppc.
> Are there any other requirements to get it working?

Yes.  Rewrite ld.so ifunc handling to process ifunc relocs last,
globally.

Without that, ifuncmain6pie will fail on any target that uses the GOT
to return the address of "one" from foo_ifunc.  Currently, foo_ifunc
is called during processing of ifuncmod6.so dynamic relocations,
which happens before ifuncmain6pie has been relocated.  That means
foo_ifunc returns an unrelocated GOT entry.

-- 
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]