From 705086c8637a1df79fe03296f981bdff416b8d99a94adf5ca47204ba62c9e899 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 26 Apr 2017 07:32:38 +0000 Subject: [PATCH] Accepting request 491038 from home:marxin:branches:Base:System Fix a test that fails on ppc64, patch is taken from upstream. OBS-URL: https://build.opensuse.org/request/show/491038 OBS-URL: https://build.opensuse.org/package/show/Base:System/elfutils?expand=0&rev=92 --- ...-support-for-EM_PPC64-GNU_ATTRIBUTES.patch | 93 +++++++++++++++++++ elfutils.changes | 6 ++ elfutils.spec | 2 + 3 files changed, 101 insertions(+) create mode 100644 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch diff --git a/0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch b/0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch new file mode 100644 index 0000000..2173003 --- /dev/null +++ b/0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch @@ -0,0 +1,93 @@ +From b1042ce216eaef96099f263fb81141dbdec004fd Mon Sep 17 00:00:00 2001 +From: Mark Wielaard +Date: Wed, 15 Feb 2017 14:30:27 +0100 +Subject: [PATCH] backends: Add support for EM_PPC64 GNU_ATTRIBUTES. + +ppc64 and ppc64le ELF files can also contain a power specific +.gnu.attributes section. Add support for those and recognize the new +GNU_Power_ABI_FP Single-precision hard float value. + +Signed-off-by: Mark Wielaard +--- + backends/ChangeLog | 6 ++++++ + backends/ppc64_init.c | 1 + + backends/ppc_attrs.c | 1 + + tests/ChangeLog | 5 +++++ + tests/Makefile.am | 4 ++-- + tests/run-readelf-A.sh | 16 +++++++++++++++- + tests/testfileppc64attrs.o.bz2 | Bin 0 -> 222 bytes + 7 files changed, 30 insertions(+), 3 deletions(-) + create mode 100644 tests/testfileppc64attrs.o.bz2 + +diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c +index 2ba82327..11d3a77f 100644 +--- a/backends/ppc64_init.c ++++ b/backends/ppc64_init.c +@@ -67,6 +67,7 @@ ppc64_init (Elf *elf __attribute__ ((unused)), + HOOK (eh, syscall_abi); + HOOK (eh, core_note); + HOOK (eh, auxv_info); ++ HOOK (eh, check_object_attribute); + HOOK (eh, abi_cfi); + /* gcc/config/ #define DWARF_FRAME_REGISTERS. */ + eh->frame_nregs = (114 - 1) + 32; +diff --git a/backends/ppc_attrs.c b/backends/ppc_attrs.c +index 612c5769..48d7129d 100644 +--- a/backends/ppc_attrs.c ++++ b/backends/ppc_attrs.c +@@ -51,6 +51,7 @@ ppc_check_object_attribute (Ebl *ebl __attribute__ ((unused)), + "Hard or soft float", + "Hard float", + "Soft float", ++ "Single-precision hard float", + }; + if (value < sizeof fp_kinds / sizeof fp_kinds[0]) + *value_name = fp_kinds[value]; +diff --git a/tests/Makefile.am b/tests/Makefile.am +index d4659cdb..a27e8687 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -317,7 +317,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \ + run-aggregate-size.sh testfile-sizes1.o.bz2 testfile-sizes2.o.bz2 \ + testfile-sizes3.o.bz2 \ + run-readelf-A.sh testfileppc32attrs.o.bz2 \ +- testfilesparc64attrs.o.bz2 \ ++ testfilesparc64attrs.o.bz2 testfileppc64attrs.o.bz2 \ + testfile-debug-types.bz2 \ + run-getsrc-die.sh run-strptr.sh \ + testfile-x32-core.bz2 testfile-x32.bz2 \ +diff --git a/tests/run-readelf-A.sh b/tests/run-readelf-A.sh +index 03d511c9..b7432bec 100755 +--- a/tests/run-readelf-A.sh ++++ b/tests/run-readelf-A.sh +@@ -32,7 +32,12 @@ + # + # gcc -c testfilesparc64attrs.s + +-testfiles testfilearm testfileppc32attrs.o testfilesparc64attrs.o ++# = testfileppc64attrs.s = ++# .gnu_attribute 4,3 ++# ++# gcc -c testfileppc64attrs.s ++ ++testfiles testfilearm testfileppc32attrs.o testfilesparc64attrs.o testfileppc64attrs.o + + testrun_compare ${abs_top_builddir}/src/readelf -A testfilearm <<\EOF + +@@ -79,4 +84,13 @@ Object attributes section [ 4] '.gnu.attributes' of 21 bytes at offset 0x40: + GNU_Sparc_HWCAPS2: fjathplus,adp,mwait,xmont + EOF + ++testrun_compare ${abs_top_builddir}/src/readelf -A testfileppc64attrs.o <<\EOF ++ ++Object attributes section [ 4] '.gnu.attributes' of 16 bytes at offset 0x40: ++ Owner Size ++ gnu 15 ++ File: 7 ++ GNU_Power_ABI_FP: Single-precision hard float ++EOF ++ + exit 0 +-- +2.12.2 + diff --git a/elfutils.changes b/elfutils.changes index 1640ef2..9c7947e 100644 --- a/elfutils.changes +++ b/elfutils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Apr 25 14:46:06 UTC 2017 - mliska@suse.cz + +- Add 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch: + fix .gnu.attributes checking on ppc64{,le}. + ------------------------------------------------------------------- Fri Apr 7 19:16:26 UTC 2017 - jengelh@inai.de diff --git a/elfutils.spec b/elfutils.spec index a808688..0dca3bb 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -31,6 +31,7 @@ Source1: README-BEFORE-ADDING-PATCHES Source2: baselibs.conf Source3: %{name}.changes Patch1: disable-tests-with-ptrace.patch +Patch2: 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -141,6 +142,7 @@ to develop applications that require these. %if 0%{?qemu_user_space_build} # qemu does not support ptrace %patch1 -p1 +%patch2 -p2 %endif %build