This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [PATCH] arm: Fix R_ARM_IRELATIVE for REL relocs.
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>, Kyle McMartin <kmcmarti at redhat dot com>
- Date: Thu, 29 Aug 2013 00:16:58 -0400
- Subject: Re: [PATCH] arm: Fix R_ARM_IRELATIVE for REL relocs.
- Authentication-results: sourceware.org; auth=none
- References: <521D7B45 dot 5040604 at redhat dot com> <Pine dot LNX dot 4 dot 64 dot 1308281609120 dot 752 at digraph dot polyomino dot org dot uk>
On 08/28/2013 12:14 PM, Joseph S. Myers wrote:
> On Wed, 28 Aug 2013, Carlos O'Donell wrote:
>
>> 2013-08-28 Kyle McMartin <kmcmarti@redhat.com>
>> Carlos O'Donell <carlos@redhat.com>
>>
>> * sysdeps/arm/dl-machine [!RTLD_BOOTSTRAP] (elf_machine_rel):
>> Pass GLRO(dl_hwcap) to the IFUNC resolver.
>
> OK, given a bug filed in Bugzilla and a corresponding [BZ #N] notation and
> entry in NEWS for the fixed bug.
I created BZ# 15905.
Sorry for forgetting, and thanks for reminding me.
I've checked in the patch which fixes the failures we're
seeing in Fedora on this hardware.
> Have you verified that all ARM instances
> of such code now consistently pass the HWCAP value?
Yes.
There are 4 places that require dl_hwcap to be used:
* ifunc-impl-list.c (__libc_ifunc_impl_list) - Already uses dl_hwcap.
* dl-irel.h (elf_ifunc_invoke) - Already uses dl_hwcap. Was fixed by
Richard Henderson in commit 73da6bacf (along with other instances
in dl-machine.h).
* dl-machine.h (elf_machine_rel) - Fixed by this patch.
* dl-machine.h (elf_machine_rela) - Fixed by Will Newton's patch.
These are the only place that I know about that require using
dl_hwcap and all of them are now fixed.
The uses are inconsistent in their use of `unsigned long int'
vs. 'int' for the dl_hwcap parameter, but changing that could
be a future cleanup.
I will note that the 32-bit ARM testsuite on this hardware is
not clean e.g.
make[2]: *** [/home/codonell/build/math/test-fenv.out] Error 1
make[1]: *** [math/tests] Error 2
make[2]: *** [/home/codonell/build/stdio-common/bug22.out] Error 1
make[1]: *** [stdio-common/tests] Error 2
make[2]: [/home/codonell/build/posix/annexc.out] Error 1 (ignored)
make[2]: *** [/home/codonell/build/nptl/tst-cleanup2.out] Error 1
make[2]: *** [/home/codonell/build/nptl/tst-cleanupx2.out] Error 1
make[1]: *** [nptl/tests] Error 2
make[2]: [/home/codonell/build/conform/run-conformtest.out] Error 1 (ignored)
make[2]: *** [/home/codonell/build/elf/ifuncmain5picstatic.out] Error 139
make[1]: *** [elf/tests] Error 2
make[1]: *** [/home/codonell/build/check-local-headers.out] Error 1
make: *** [check] Error 2
In particular ifuncmain5picstatic.out looks troublesome, and
I need to look at it to see if something is further wrong with
the IFUNC support.
Cheers,
Carlos.