Re: mipseb and mipsel patches to RPM...
From: <hidden>
Date: 1998-01-15 05:29:48
Possibly related (same subject, not in this thread)
- 1998-01-15 · mipseb and mipsel patches to RPM... · Alex deVries <hidden>
On Wed, Jan 14, 1998 at 10:56:58PM -0500, Alex deVries wrote: You can solve the byteorder detection issue more efficient at compile time by something like: #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) /* little endian */ strcpy(un.machine, "mipsel"); #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) /* big endian */ strcpy(un.machine, "mipseb"); #else /* This doesn't happen (TM) */ #endif #endif Other than that my patch is almost down to the byte the same. Ralf
quoted hunk
diff -rc rpm-2.4.99.orig/lib/rpmrc.c rpm-2.4.99/lib/rpmrc.c *** rpm-2.4.99.orig/lib/rpmrc.c Tue Jan 13 16:08:24 1998--- rpm-2.4.99/lib/rpmrc.c Wed Jan 14 19:07:28 1998*************** *** 669,674 ****--- 669,681 ---- char * chptr; struct canonEntry * canon; + #if defined (__mips) + union { + long l; + char c[sizeof (long)]; + } u; + #endif + if (!gotDefaults) { uname(&un); if (!strcmp(un.sysname, "AIX")) {*************** *** 681,686 ****--- 688,702 ---- chptr = un.machine; while (*chptr++) if (*chptr == '/') *chptr = '-'; + + #if defined(__mips) + u.l = 1; + if (u.c[sizeof (long) - 1] == 1) { + strcpy(un.machine, "mipseb"); + } else { + strcpy(un.machine, "mipsel"); + } + #endif #if defined(__hpux) && defined(_SC_CPU_VERSION) {diff -rc rpm-2.4.99.orig/lib-rpmrc.in rpm-2.4.99/lib-rpmrc.in *** rpm-2.4.99.orig/lib-rpmrc.in Tue Jan 13 16:08:23 1998--- rpm-2.4.99/lib-rpmrc.in Wed Jan 14 18:41:13 1998*************** *** 41,47 **** arch_canon: sun4c: sparc 3 arch_canon: sun4d: sparc 3 # This is really a place holder for MIPS. ! arch_canon: mips: mips 4 arch_canon: ppc: ppc 5 arch_canon: m68k: m68k 6 arch_canon: IP: sgi 7--- 41,47 ---- arch_canon: sun4c: sparc 3 arch_canon: sun4d: sparc 3 # This is really a place holder for MIPS.! arch_canon: mipseb: mipseb 4 arch_canon: ppc: ppc 5 arch_canon: m68k: m68k 6 arch_canon: IP: sgi 7 *************** *** 50,55 ****--- 50,56 ---- arch_canon: 9000/712: hppa1.1 9 arch_canon: sun4u: usparc 10 + arch_canon: mipsel: mipsel 11 ############################################################# # Canonical OS names and numbers*************** *** 118,124 **** arch_compat: sparc: noarch arch_compat: ppc: noarch ! arch_compat: mips: noarch arch_compat: hppa1.1: hppa1.0 arch_compat: hppa1.0: noarch--- 119,126 ---- arch_compat: sparc: noarch arch_compat: ppc: noarch! arch_compat: mipseb: noarch ! arch_compat: mipsel: noarch arch_compat: hppa1.1: hppa1.0 arch_compat: hppa1.0: noarch *************** *** 137,140 **** buildarch_compat: alpha: noarch buildarch_compat: m68k: noarch buildarch_compat: ppc: noarch ! buildarch_compat: mips: noarch--- 139,144 ---- buildarch_compat: alpha: noarch buildarch_compat: m68k: noarch buildarch_compat: ppc: noarch! buildarch_compat: mipsel: noarch ! buildarch_compat: mipseb: noarch ! diff -rc rpm-2.4.99.orig/rpm.magic rpm-2.4.99/rpm.magic *** rpm-2.4.99.orig/rpm.magic Tue Jan 13 16:08:23 1998--- rpm-2.4.99/rpm.magic Wed Jan 14 16:43:43 1998*************** *** 10,17 **** >>8 beshort 1 i386 >>8 beshort 2 Alpha >>8 beshort 3 Sparc ! >>8 beshort 4 MIPS >>8 beshort 5 PowerPC >>8 beshort 6 68000 >>8 beshort 7 SGI >>10 string x %s--- 10,18 ---- >>8 beshort 1 i386 >>8 beshort 2 Alpha >>8 beshort 3 Sparc! >>8 beshort 4 MIPS big endian >>8 beshort 5 PowerPC >>8 beshort 6 68000 >>8 beshort 7 SGI + >>8 beshort 11 MIPS little endian >>10 string x %s