Give this a shot -> http://people.centos.org/jperrin/glibc/2.17-79.el7/ On 10/16/2015 11:19 AM, Stefano Stabellini wrote: > Fantastic, thank you! > > On Fri, 16 Oct 2015, Jim Perrin wrote: >> Yup. this one works. I'll have a build for you to test early monday. >> >> On 10/15/2015 12:15 PM, Stefano Stabellini wrote: >>> On Wed, 14 Oct 2015, Jim Perrin wrote: >>>> On 10/13/2015 03:47 PM, Jim Perrin wrote: >>>>> >>>>> >>>>> On 10/13/2015 05:13 AM, Stefano Stabellini wrote: >>>>> >>>>>> Any chances we can have that patch in the CentOS 7 aarch64 glibc? >>>>> >>>>> I'll take a look at including it, if you'd be willing to test it out >>>>> before we consider pushing it as an update. >>>>> >>>>> >>>> >>>> This patch does not apply to our existing glibc package as there is no >>>> sysdeps/unix/sysv/linux/aarch64/* to update. If you can come up with a >>>> patch that addresses the issue you're trying to fix, we can give it a shot. >>> >>> The same code leaves under ports/ in our glibc package. I have prepended >>> ports/ in the patch filenames (see below) and it works fine. >>> >>> >>> diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/ports/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h >>> index b02af8a..211227c 100644 >>> --- a/ports/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h >>> +++ b/ports/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h >>> @@ -33,17 +33,6 @@ >>> #include <sys/types.h> >>> #include <sys/user.h> >>> >>> -/* We need to see the definition of struct pt_regs but do not want the >>> - linux PTRACE_* defines since they conflict with the generic eglibc >>> - definitions in sys/ptrace.h Hence the undef's below. */ >>> -#include <asm/ptrace.h> >>> - >>> -#undef PTRACE_GET_THREAD_AREA >>> -#undef PTRACE_GETHBPREGS >>> -#undef PTRACE_SETHBPREGS >>> - >>> -#include <sys/user.h> >>> - >>> __BEGIN_DECLS >>> >>> /* Type for a general-purpose register. */ >>> @@ -53,11 +42,11 @@ typedef unsigned long elf_greg_t; >>> pt_regs' directly in the typedef, but tradition says that >>> the register set is an array, which does have some peculiar >>> semantics, so leave it that way. */ >>> -#define ELF_NGREG (sizeof (struct user_pt_regs) / sizeof(elf_greg_t)) >>> +#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) >>> typedef elf_greg_t elf_gregset_t[ELF_NGREG]; >>> >>> /* Register set for the floating-point registers. */ >>> -typedef struct user_fpsimd_state elf_fpregset_t; >>> +typedef struct user_fpsimd_struct elf_fpregset_t; >>> >>> /* Signal info. */ >>> struct elf_siginfo >>> diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/ports/sysdeps/unix/sysv/linux/aarch64/sys/user.h >>> index eceeb38..0ca2715 100644 >>> --- a/ports/sysdeps/unix/sysv/linux/aarch64/sys/user.h >>> +++ b/ports/sysdeps/unix/sysv/linux/aarch64/sys/user.h >>> @@ -19,13 +19,19 @@ >>> #ifndef _SYS_USER_H >>> #define _SYS_USER_H 1 >>> >>> -/* We need to see the definition of struct pt_regs but do not want the >>> - linux PTRACE_* defines since they conflict with the generic glibc >>> - definitions in sys/ptrace.h Hence the undef's below. */ >>> -#include <asm/ptrace.h> >>> - >>> -#undef PTRACE_GET_THREAD_AREA >>> -#undef PTRACE_GETHBPREGS >>> -#undef PTRACE_SETHBPREGS >>> +struct user_regs_struct >>> +{ >>> + unsigned long long regs[31]; >>> + unsigned long long sp; >>> + unsigned long long pc; >>> + unsigned long long pstate; >>> +}; >>> + >>> +struct user_fpsimd_struct >>> +{ >>> + __uint128_t vregs[32]; >>> + unsigned int fpsr; >>> + unsigned int fpcr; >>> +}; >>> >>> #endif >>> >> >> -- >> Jim Perrin >> The CentOS Project | http://www.centos.org >> twitter: @BitIntegrity | GPG Key: FA09AD77 >> -- Jim Perrin The CentOS Project | http://www.centos.org twitter: @BitIntegrity | GPG Key: FA09AD77