On Dec 10, 2009, at 5:56 PM, Caspar Zhang wrote: > > ----- "Subrata Modak" <[email protected]> wrote: > >> Hi Caspar, >> >> I just have 1 question below: >> >> On Wed, 2009-12-09 at 21:12 -0500, Caspar Zhang wrote: >>> Hi all, >>> >>> When I compile ltp-full-20091130 on ppc64 machine which system is >>> RHEL5(kernel 2.6.18), I met compile error as follows: >>> >>> [...] >>> ptrace04.c: In function ‘compare_registers’: >>> ptrace04.c:59: error: ‘PTRACE_GETREGS’ undeclared (first use in >> this >>> function) >>> ptrace04.c:59: error: (Each undeclared identifier is reported only >>> once >>> ptrace04.c:59: error: for each function it appears in.) >>> make[5]: *** [ptrace04] Error 1 >>> [...] >>> >>> It seems like there's no PTRACE_GETREGS in >> /usr/include/asm/ptrace.h >>> in old kernels, so I copy the definitions from new version of the >>> head file and my ltp on ppc64, RHEL5 works. >> >> Are these nos. similar across all archs ? If they are specific only >> to >> PPC, you can then add the following 2 more lines to your patch: >> >>> >>> Thanks, >>> Caspar >>> >>> >>> >>> >>> >>> >>> differences >>> between files >>> attachment >>> (rhel5-ppc-PTRACE_GETREGS-compile-err.patch) >>> >>> diff --git a/testcases/kernel/syscalls/ptrace/ptrace.h >>> b/testcases/kernel/syscalls/ptrace/ptrace.h >>> index a0d2708..e3fcbb2 100644 >>> --- a/testcases/kernel/syscalls/ptrace/ptrace.h >>> +++ b/testcases/kernel/syscalls/ptrace/ptrace.h >>> @@ -37,4 +37,27 @@ typedef struct user_regs_struct ptrace_regs; >>> #undef HAVE_STRUCT_PTRACE_REGS >>> #endif >>> >>> +/* old kernel doesn't have PTRACE_GETREGS on ppc64 */ >>> +/* (new) PTRACE requests using the same numbers as x86 and the >> same >>> + * argument ordering. Additionally, they support more registers >> too >>> + */ >> >> #if defined(powerpc) || defined(__powerpc__) || defined(__ppc__) || >> defined (__PPC__) > > Ah, yes. That sounds reasonable, thant you!
For whatever reason someone decided to be special on ppc64.. not sure why (maybe because ppc and ppc64 diverged in older kernels and converged in later ones?): [r...@localhost /]# egrep 'PTRACE_[GS]ETREGS' /scratch/fc4/kernel/include/asm-ppc64/ptrace.h #define PPC_PTRACE_GETREGS 0x99 /* Get GPRs 0 - 31 */ #define PPC_PTRACE_SETREGS 0x98 /* Set GPRs 0 - 31 */ [r...@localhost /]# egrep 'PTRACE_[GS]ETREGS' /scratch/fc7/kernel/include/asm-powerpc/ptrace.h #define PPC_PTRACE_GETREGS 0x99 /* Get GPRs 0 - 31 */ #define PPC_PTRACE_SETREGS 0x98 /* Set GPRs 0 - 31 */ A similar issue may exist for sparc64, but I doubt it: [r...@localhost /]# egrep 'PTRACE_[GS]ETREGS' /scratch/fc4/kernel/include/asm-sparc*/ptrace.h /scratch/fc4/kernel/include/asm-sparc64/ptrace.h:#define PTRACE_GETREGS 12 /scratch/fc4/kernel/include/asm-sparc64/ptrace.h:#define PTRACE_SETREGS 13 /scratch/fc4/kernel/include/asm-sparc64/ptrace.h:#define PTRACE_GETREGS64 22 /scratch/fc4/kernel/include/asm-sparc64/ptrace.h:#define PTRACE_SETREGS64 23 /scratch/fc4/kernel/include/asm-sparc/ptrace.h:#define PTRACE_GETREGS 12 /scratch/fc4/kernel/include/asm-sparc/ptrace.h:#define PTRACE_SETREGS 13 What kernel version are you using again? Thanks, -Garrett ------------------------------------------------------------------------------ Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
