From 516e6f065a1bed0d95ffd1c8a4d8e135d834af94 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 13 Sep 2013 01:48:33 +0000 Subject: eglibc_2.18.bb: Fix IFUNC support for ARM REL relocations This should fix the case where neon code is emitted for machines which dont have neon unit in the chip [YOCTO# 5161] Signed-off-by: Khem Raj Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- .../0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch | 43 ++++++++++++++++++++++ meta/recipes-core/eglibc/eglibc_2.18.bb | 1 + 2 files changed, 44 insertions(+) create mode 100644 meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch (limited to 'meta/recipes-core') diff --git a/meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch b/meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch new file mode 100644 index 0000000000..24d4772728 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.18/0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch @@ -0,0 +1,43 @@ +Upstream-Status: Backport + +From d0721e703d222c01a9e8c329311c4fb01dac6972 Mon Sep 17 00:00:00 2001 +From: Carlos O'Donell +Date: Thu, 29 Aug 2013 00:17:33 -0400 +Subject: [PATCH] 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). +--- + NEWS | 2 +- + ports/ChangeLog.arm | 7 +++++++ + ports/sysdeps/arm/dl-machine.h | 2 +- + 3 files changed, 9 insertions(+), 2 deletions(-) + +Index: libc/ports/ChangeLog.arm +=================================================================== +--- libc.orig/ports/ChangeLog.arm 2013-07-14 16:08:52.000000000 -0700 ++++ libc/ports/ChangeLog.arm 2013-09-12 17:17:24.174387150 -0700 +@@ -1,3 +1,10 @@ ++2013-08-28 Kyle McMartin ++ Carlos O'Donell ++ ++ [BZ #15905] ++ * sysdeps/arm/dl-machine [!RTLD_BOOTSTRAP] (elf_machine_rel): ++ Pass GLRO(dl_hwcap) to the IFUNC resolver. ++ + 2013-07-03 Joseph Myers + + * sysdeps/arm/include/bits/setjmp.h [_ISOMAC] (JMP_BUF_REGLIST): +Index: libc/ports/sysdeps/arm/dl-machine.h +=================================================================== +--- libc.orig/ports/sysdeps/arm/dl-machine.h 2013-09-12 08:56:03.641743520 -0700 ++++ libc/ports/sysdeps/arm/dl-machine.h 2013-09-12 17:17:24.174387150 -0700 +@@ -503,7 +503,7 @@ + break; + case R_ARM_IRELATIVE: + value = map->l_addr + *reloc_addr; +- value = ((Elf32_Addr (*) (void)) value) (); ++ value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap)); + *reloc_addr = value; + break; + #endif diff --git a/meta/recipes-core/eglibc/eglibc_2.18.bb b/meta/recipes-core/eglibc/eglibc_2.18.bb index 17b651fe15..710b498a4d 100644 --- a/meta/recipes-core/eglibc/eglibc_2.18.bb +++ b/meta/recipes-core/eglibc/eglibc_2.18.bb @@ -26,6 +26,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/eglibc/eglibc-${PV}-svnr23 file://tzselect-awk.patch \ file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ file://fix-tibetian-locales.patch \ + file://0001-ARM-Pass-dl_hwcap-to-IFUNC-resolver.patch \ " SRC_URI[md5sum] = "b395b021422a027d89884992e91734fc" SRC_URI[sha256sum] = "15f564b45dc5dd65faf0875579e3447961ae61e876933384ae05d19328539ad4" -- cgit 1.2.3-korg