forked from pool/elfutils
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
This commit is contained in:
parent
61111f74df
commit
705086c863
93
0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch
Normal file
93
0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
From b1042ce216eaef96099f263fb81141dbdec004fd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Wielaard <mark@klomp.org>
|
||||||
|
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 <mark@klomp.org>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
@ -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
|
Fri Apr 7 19:16:26 UTC 2017 - jengelh@inai.de
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ Source1: README-BEFORE-ADDING-PATCHES
|
|||||||
Source2: baselibs.conf
|
Source2: baselibs.conf
|
||||||
Source3: %{name}.changes
|
Source3: %{name}.changes
|
||||||
Patch1: disable-tests-with-ptrace.patch
|
Patch1: disable-tests-with-ptrace.patch
|
||||||
|
Patch2: 0001-backends-Add-support-for-EM_PPC64-GNU_ATTRIBUTES.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
@ -141,6 +142,7 @@ to develop applications that require these.
|
|||||||
%if 0%{?qemu_user_space_build}
|
%if 0%{?qemu_user_space_build}
|
||||||
# qemu does not support ptrace
|
# qemu does not support ptrace
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p2
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
Loading…
Reference in New Issue
Block a user