Index: installplatform =================================================================== --- installplatform +++ installplatform 2007-02-27 17:37:28.845532743 +0100 @@ -33,7 +33,7 @@ i[3456]86|pentium[34]|athlon) SUBSTS='s_i386_i386_ s_i386_i486_ s_i386_i586_ s_i386_i686_ s_i386_pentium3_ s_i386_pentium4_ s_i386_athlon_' ;; alpha*) SUBSTS='s_alpha_alpha_ s_alpha_alphaev5_ s_alpha_alphaev56_ s_alpha_alphapca56_ s_alpha_alphaev6_ s_alpha_alphaev67_' ;; sparc*) SUBSTS='s_sparc\(64\|v9\)_sparc_ s_sparc64_sparcv9_;s_sparc\([^v]\|$\)_sparcv9\1_ s_sparcv9_sparc64_;s_sparc\([^6]\|$\)_sparc64\1_' ;; - powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_' ;; + powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6ip]\|$\)_ppc64\1_ s_ppc\([^6ip]\|$\)_ppciseries_ s_ppc\([^6ip]\|$\)_ppcpseries_ s_ppc\([^6ip]\|$\)_ppc64iseries_ s_ppc\([^6ip]\|$\)_ppc64pseries_ s_ppc64_ppc32_ s_ppc\([^6ip]\|$\)_ppc32_' ;; s390*) SUBSTS='s_s390x_s390_ s_s390\([^x]\|$\)_s390x\1_' ;; x86_64|amd64|ia32e) SUBSTS='s,x86_64,ia32e, s,x86_64,amd64,' ;; *) SUBSTS=y___ ;; @@ -64,7 +64,7 @@ sparc64-linux) ARCH_INSTALL_POST=${pkglibdir}/brp-sparc64-linux; LIB=lib64; MULTILIBNO=2 ;; s390-linux) MULTILIBNO=1 ;; s390x-linux) LIB=lib64; MULTILIBNO=2 ;; - ppc-linux) MULTILIBNO=1 ;; + ppc-linux|ppc32-linux) MULTILIBNO=1 ;; ppc64-linux) LIB=lib64; MULTILIBNO=2 ;; i?86-linux|pentium?-linux|athlon-linux) MULTILIBNO=1 ;; x86_64-linux|amd64-linux|ia32e-linux) LIB=lib64; MULTILIBNO=2 ;; Index: rpmrc.in =================================================================== --- rpmrc.in +++ rpmrc.in 2007-02-27 17:38:36.485987037 +0100 @@ -47,6 +47,7 @@ optflags: ppc32dy4 -O2 -g -m32 optflags: ppciseries -O2 -g -m32 optflags: ppcpseries -O2 -g -m32 +optflags: ppc32 -O2 -g -fsigned-char optflags: ppc64 -O2 -g -m64 -mminimal-toc optflags: ppciseries -O2 -g -m64 -mminimal-toc optflags: ppcpseries -O2 -g -m64 -mminimal-toc @@ -112,6 +113,7 @@ arch_canon: mips: mips 4 arch_canon: ppc: ppc 5 +arch_canon: ppc32: ppc32 5 arch_canon: ppc8260: ppc8260 5 arch_canon: ppc8560: ppc8560 5 arch_canon: ppc32dy4: ppc32dy4 5 @@ -272,7 +274,8 @@ arch_compat: ppc32dy4: ppc arch_compat: ppciseries: ppc arch_compat: ppcpseries: ppc -arch_compat: ppc64: ppc +arch_compat: ppc64: ppc32 +arch_compat: ppc32: ppc arch_compat: ppc: rs6000 arch_compat: rs6000: noarch fat arch_compat: ppc64pseries: ppc64 @@ -382,6 +385,7 @@ buildarch_compat: ppciseries: noarch buildarch_compat: ppcpseries: noarch buildarch_compat: ppc: noarch fat +buildarch_compat: ppc32: ppc buildarch_compat: ppc64: noarch fat buildarch_compat: ppc64pseries: ppc64 buildarch_compat: ppc64iseries: ppc64 Index: lib/rpmrc.c =================================================================== --- lib/rpmrc.c +++ lib/rpmrc.c 2007-02-27 17:37:28.821532581 +0100 @@ -1537,6 +1537,9 @@ # endif # if defined(__linux__) && defined(__powerpc__) +#if defined(__powerpc64__) + if (!strcmp(un.machine, "ppc")) +#endif { unsigned pvr = 0; __sighandler_t oldh = signal(SIGILL, mfspr_ill); @@ -1548,17 +1551,32 @@ if ( pvr ) { pvr >>= 16; switch (pvr) { - /* IBM750FX, 7410, 7450, 7451, 7441, 7455, 7445 */ - case 0x7000: - case 0x8000: - case 0x8001: - case 0x800c: + case 0x7000: // 750FX + case 0x7002: // 750GX + case 0x8000: // 7450 + case 0x8001: // 7455 + case 0x8002: // 7457 + case 0x8003: // 7447A + case 0x8004: // 7448 + case 0x800c: // 7410 strcpy(un.machine, "ppc"); break; case 0x36: case 0x37: strcpy(un.machine, "ppciseries"); break; +#if defined(__powerpc64__) + case 0x35: // POWER4 + case 0x39: // 970 + case 0x3c: // 970FX + case 0x3a: // POWER5 + case 0x3b: // POWER5+ + case 0x3e: // POWER6 + case 0x70: // Cell + case 0x90: // PA67 + strcpy(un.machine, "ppc32"); + break; +#endif default: if ( pvr >= 0x40) strcpy(un.machine, "ppcpseries"); Index: lib/rpmts.c =================================================================== --- lib/rpmts.c +++ lib/rpmts.c 2007-02-27 17:37:28.805532474 +0100 @@ -235,7 +235,7 @@ "sparc", "sun4", "sun4m", "sun4c", "sun4d", "sparcv8", "sparcv9", "sparc64", "sun4u", "mips", "mipsel", "IP", - "ppc", "ppciseries", "ppcpseries", + "ppc", "ppciseries", "ppcpseries", "ppc32", "ppc64", "ppc64iseries", "ppc64pseries", "m68k", "rs6000",