On ARM in dl-machine.h (elf_machine_rel) when handling R_ARM_IRELATIVE relocations for STT_GNU_IFUNC we fail to pass dl_hwcap to the IFUNC resolver resulting in the wrong function being selected for the current hardware.
When building glibc with multi-arch support and the VFP ABI this will cause the NEON variants of functions to be selected even though NEON hardware might not be present.
On hardware without NEON support the built glibc will fail to run correctly. This is immediately obvious as most of the testsuite will fail with SIGILL on this hardware.
Author: Carlos O'Donell <email@example.com>
Date: Thu Aug 29 00:17:33 2013 -0400
ARM: Pass dl_hwcap to IFUNC resolver.
For REL relocs pass dl_hwcap to the IFUNC resolver
as is required by the IFUNC API (bug 15905).