From 2e16caff896ff62c61ab2ff96265ac24a4ec83e8 Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Mon, 9 Jun 2014 14:11:40 -0400 Subject: [PATCH] AArch64: handle new glibc-headers which provides proper GETREGSET structs. --- elfutils-aarch64-user_regs_struct.patch | 35 +++++++++++++++++++++++++ elfutils.spec | 12 ++++++--- 2 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 elfutils-aarch64-user_regs_struct.patch diff --git a/elfutils-aarch64-user_regs_struct.patch b/elfutils-aarch64-user_regs_struct.patch new file mode 100644 index 0000000..38240bc --- /dev/null +++ b/elfutils-aarch64-user_regs_struct.patch @@ -0,0 +1,35 @@ +diff --git a/backends/aarch64_initreg.c b/backends/aarch64_initreg.c +index 2492d56..8d68a6e 100644 +--- a/backends/aarch64_initreg.c ++++ b/backends/aarch64_initreg.c +@@ -51,7 +51,7 @@ aarch64_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), + #else /* __aarch64__ */ + + /* General registers. */ +- struct user_pt_regs gregs; ++ struct user_regs_struct gregs; + struct iovec iovec; + iovec.iov_base = &gregs; + iovec.iov_len = sizeof (gregs); +@@ -69,7 +69,7 @@ aarch64_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), + /* ELR cannot be found. */ + + /* FP registers (only 64bits are used). */ +- struct user_fpsimd_state fregs; ++ struct user_fpsimd_struct fregs; + iovec.iov_base = &fregs; + iovec.iov_len = sizeof (fregs); + if (ptrace (PTRACE_GETREGSET, tid, NT_FPREGSET, &iovec) != 0) +diff --git a/backends/arm_initreg.c b/backends/arm_initreg.c +index 5837383..1edf62b 100644 +--- a/backends/arm_initreg.c ++++ b/backends/arm_initreg.c +@@ -67,7 +67,7 @@ arm_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), + #elif defined __aarch64__ + /* Compat mode: arm compatible code running on aarch64 */ + int i; +- struct user_pt_regs gregs; ++ struct user_regs_struct gregs; + struct iovec iovec; + iovec.iov_base = &gregs; + iovec.iov_len = sizeof (gregs); diff --git a/elfutils.spec b/elfutils.spec index 25f8251..4eeea86 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,7 +1,7 @@ Name: elfutils Summary: A collection of utilities and DSOs to handle compiled objects Version: 0.159 -%global baserelease 2 +%global baserelease 3 URL: https://fedorahosted.org/elfutils/ %global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/ License: GPLv3+ and (GPLv2+ or LGPLv3+) @@ -45,11 +45,12 @@ Group: Development/Tools Source: %{?source_url}%{name}-%{version}.tar.bz2 Patch1: %{?source_url}elfutils-portability.patch +Patch2: elfutils-aarch64-user_regs_struct.patch %if !%{compat} -Release: %{baserelease}%{?dist}.1 +Release: %{baserelease}%{?dist} %else -Release: 0.%{baserelease}.1 +Release: 0.%{baserelease} %endif Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} @@ -207,6 +208,8 @@ sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c %endif %endif +%patch2 -p1 -b .aa64~1 + find . -name \*.sh ! -perm -0100 -print | xargs chmod +x %build @@ -328,6 +331,9 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Mon Jun 09 2014 Kyle McMartin - 0.159-3 +- AArch64: handle new glibc-headers which provides proper GETREGSET structs. + * Sat Jun 07 2014 Fedora Release Engineering - 0.159-2.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild