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 >