2003-01-14  Roland McGrath  <roland@redhat.com>

	* configure.ac: Match powerpc* (includes powerpc64), and don't match
	ppc (never comes out of config.sub).
	* process.c (sys_ptrace): Use #lx format for address argument.
	[POWERPC]: Use sizeof(unsigned long) in place of 4 for multipliers.
	* process.c [POWERPC]: Likewise.
	* signal.c (sys_sigreturn) [POWERPC]: Likewise.
	* syscall.c (get_scno) [POWERPC]: Likewise.
	* util.c [POWERPC]: Likewise.
	(printnum): Use long for NUM.
	From Anton Blanchard <anton@samba.org>.
diff --git a/process.c b/process.c
index c66e7c2..633a582 100644
--- a/process.c
+++ b/process.c
@@ -609,7 +609,8 @@
 		return -1;
 	return 0;
 #elif defined(POWERPC)
-	if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(4*PT_R0), new) < 0)
+	if (ptrace(PTRACE_POKEUSER, tcp->pid,
+		   (char*)(sizeof(unsigned long)*PT_R0), new) < 0)
 		return -1;
        return 0;
 #elif defined(S390) || defined(S390X)
@@ -693,7 +694,7 @@
 #endif
 	{
 		ptrace(PTRACE_POKEUSER, tcp->pid,
-		       (char*)((argnum==0 ? PT_ORIG_R3 : argnum+PT_R3)*4),
+		       (char*)((argnum==0 ? PT_ORIG_R3 : argnum+PT_R3)*sizeof(unsigned long)),
 		       tcp->u_arg[argnum]);
 		if (errno)
 			return -1;
@@ -2126,46 +2127,48 @@
 #ifndef PT_ORIG_R3
 #define PT_ORIG_R3 34
 #endif
-	{ 4*PT_R0,		"4*PT_R0"				},
-	{ 4*PT_R1,		"4*PT_R1"				},
-	{ 4*PT_R2,		"4*PT_R2"				},
-	{ 4*PT_R3,		"4*PT_R3"				},
-	{ 4*PT_R4,		"4*PT_R4"				},
-	{ 4*PT_R5,		"4*PT_R5"				},
-	{ 4*PT_R6,		"4*PT_R6"				},
-	{ 4*PT_R7,		"4*PT_R7"				},
-	{ 4*PT_R8,		"4*PT_R8"				},
-	{ 4*PT_R9,		"4*PT_R9"				},
-	{ 4*PT_R10,		"4*PT_R10"				},
-	{ 4*PT_R11,		"4*PT_R11"				},
-	{ 4*PT_R12,		"4*PT_R12"				},
-	{ 4*PT_R13,		"4*PT_R13"				},
-	{ 4*PT_R14,		"4*PT_R14"				},
-	{ 4*PT_R15,		"4*PT_R15"				},
-	{ 4*PT_R16,		"4*PT_R16"				},
-	{ 4*PT_R17,		"4*PT_R17"				},
-	{ 4*PT_R18,		"4*PT_R18"				},
-	{ 4*PT_R19,		"4*PT_R19"				},
-	{ 4*PT_R20,		"4*PT_R20"				},
-	{ 4*PT_R21,		"4*PT_R21"				},
-	{ 4*PT_R22,		"4*PT_R22"				},
-	{ 4*PT_R23,		"4*PT_R23"				},
-	{ 4*PT_R24,		"4*PT_R24"				},
-	{ 4*PT_R25,		"4*PT_R25"				},
-	{ 4*PT_R26,		"4*PT_R26"				},
-	{ 4*PT_R27,		"4*PT_R27"				},
-	{ 4*PT_R28,		"4*PT_R28"				},
-	{ 4*PT_R29,		"4*PT_R29"				},
-	{ 4*PT_R30,		"4*PT_R30"				},
-	{ 4*PT_R31,		"4*PT_R31"				},
-	{ 4*PT_NIP,		"4*PT_NIP"				},
-	{ 4*PT_MSR,		"4*PT_MSR"				},
-	{ 4*PT_ORIG_R3,		"4*PT_ORIG_R3"				},
-	{ 4*PT_CTR,		"4*PT_CTR"				},
-	{ 4*PT_LNK,		"4*PT_LNK"				},
-	{ 4*PT_XER,		"4*PT_XER"				},
-	{ 4*PT_CCR,		"4*PT_CCR"				},
-	{ 4*PT_FPR0,		"4*PT_FPR0"				},
+#define REGSIZE (sizeof(unsigned long))
+	{ REGSIZE*PT_R0,		"r0"				},
+	{ REGSIZE*PT_R1,		"r1"				},
+	{ REGSIZE*PT_R2,		"r2"				},
+	{ REGSIZE*PT_R3,		"r3"				},
+	{ REGSIZE*PT_R4,		"r4"				},
+	{ REGSIZE*PT_R5,		"r5"				},
+	{ REGSIZE*PT_R6,		"r6"				},
+	{ REGSIZE*PT_R7,		"r7"				},
+	{ REGSIZE*PT_R8,		"r8"				},
+	{ REGSIZE*PT_R9,		"r9"				},
+	{ REGSIZE*PT_R10,		"r10"				},
+	{ REGSIZE*PT_R11,		"r11"				},
+	{ REGSIZE*PT_R12,		"r12"				},
+	{ REGSIZE*PT_R13,		"r13"				},
+	{ REGSIZE*PT_R14,		"r14"				},
+	{ REGSIZE*PT_R15,		"r15"				},
+	{ REGSIZE*PT_R16,		"r16"				},
+	{ REGSIZE*PT_R17,		"r17"				},
+	{ REGSIZE*PT_R18,		"r18"				},
+	{ REGSIZE*PT_R19,		"r19"				},
+	{ REGSIZE*PT_R20,		"r20"				},
+	{ REGSIZE*PT_R21,		"r21"				},
+	{ REGSIZE*PT_R22,		"r22"				},
+	{ REGSIZE*PT_R23,		"r23"				},
+	{ REGSIZE*PT_R24,		"r24"				},
+	{ REGSIZE*PT_R25,		"r25"				},
+	{ REGSIZE*PT_R26,		"r26"				},
+	{ REGSIZE*PT_R27,		"r27"				},
+	{ REGSIZE*PT_R28,		"r28"				},
+	{ REGSIZE*PT_R29,		"r29"				},
+	{ REGSIZE*PT_R30,		"r30"				},
+	{ REGSIZE*PT_R31,		"r31"				},
+	{ REGSIZE*PT_NIP,		"NIP"				},
+	{ REGSIZE*PT_MSR,		"MSR"				},
+	{ REGSIZE*PT_ORIG_R3,		"ORIG_R3"			},
+	{ REGSIZE*PT_CTR,		"CTR"				},
+	{ REGSIZE*PT_LNK,		"LNK"				},
+	{ REGSIZE*PT_XER,		"XER"				},
+	{ REGSIZE*PT_CCR,		"CCR"				},
+	{ REGSIZE*PT_FPR0,		"FPR0"				},
+#undef REGSIZE
 #else
 #ifdef ALPHA
 	{ 0,			"r0"					},
@@ -2569,7 +2572,7 @@
 		case PTRACE_PEEKDATA:
 		case PTRACE_PEEKTEXT:
 		case PTRACE_PEEKUSER:
-			printnum(tcp, tcp->u_arg[3], "%#x");
+			printnum(tcp, tcp->u_arg[3], "%#lx");
 			break;
 		}
 	}