1 diff -urN rpm.org/build/parseSpec.c rpm/build/parseSpec.c
2 --- rpm.org/build/parseSpec.c 2004-06-14 14:52:54.433793272 +0200
3 +++ rpm/build/parseSpec.c 2004-06-14 14:55:21.399451096 +0200
8 +static const char *getAlternateArch(const char *arch)
10 + const char *alternate_arch = NULL;
11 + if (! strncmp("x86_64", arch, sizeof("x86_64")-1))
12 + alternate_arch = "amd64";
13 + else if (! strncmp("amd64", arch, sizeof("amd64")-1))
14 + alternate_arch = "x86_64";
15 + return alternate_arch;
19 int readLine(Spec spec, int strip)
22 } else if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
23 const char *arch = rpmExpand("%{_target_cpu}", NULL);
24 + const char *alternate_arch = getAlternateArch(arch);
26 - match = matchTok(arch, s);
27 + match = matchTok(arch, s) || (alternate_arch && matchTok(alternate_arch, s));
29 } else if (! strncmp("%ifnarch", s, sizeof("%ifnarch")-1)) {
30 const char *arch = rpmExpand("%{_target_cpu}", NULL);
31 + const char *alternate_arch = getAlternateArch(arch);
33 - match = !matchTok(arch, s);
34 + match = !matchTok(arch, s) && (!alternate_arch || !matchTok(alternate_arch, s));
36 } else if (! strncmp("%ifos", s, sizeof("%ifos")-1)) {
37 const char *os = rpmExpand("%{_target_os}", NULL);
38 diff -urN rpm.org/installplatform rpm/installplatform
39 --- rpm.org/installplatform 2004-06-14 14:53:29.722428584 +0200
40 +++ rpm/installplatform 2004-06-14 14:57:50.898723752 +0200
42 ppc-linux) MULTILIBNO=1 ;;
43 ppc64-linux) LIB=lib64; MULTILIBNO=2 ;;
44 i?86-linux|pentium?-linux|athlon-linux) MULTILIBNO=1 ;;
45 - x86_64-linux) LIB=lib64; MULTILIBNO=2 ;;
46 + x86_64-linux|amd64-linux|ia32e-linux) LIB=lib64; MULTILIBNO=2 ;;
49 if [ -n "$MULTILIBNO" ]; then
50 diff -urN rpm.org/lib/rpmrc.c rpm/lib/rpmrc.c
51 --- rpm.org/lib/rpmrc.c 2004-06-14 14:53:19.117040848 +0200
52 +++ rpm/lib/rpmrc.c 2004-06-14 14:55:21.421447752 +0200
53 @@ -1319,6 +1319,13 @@
57 +# if defined(__linux__) && defined(__amd64__)
59 + /* Defaults to amd64 if compiler supports __amd64__ */
60 + strcpy(un.machine, "amd64");
64 # if defined(__linux__) && defined(__powerpc__)
67 diff -urN rpm.org/rpmrc.in rpm/rpmrc.in
68 --- rpm.org/rpmrc.in 2004-06-14 14:53:29.723428432 +0200
69 +++ rpm/rpmrc.in 2004-06-14 14:58:38.156539472 +0200
72 buildarchtranslate: ia64: ia64
74 -buildarchtranslate: x86_64: x86_64
75 -buildarchtranslate: amd64: x86_64
76 -buildarchtranslate: ia32e: x86_64
77 +buildarchtranslate: x86_64: amd64
78 +buildarchtranslate: amd64: amd64
79 +buildarchtranslate: ia32e: amd64
81 #############################################################
82 # Architecture compatibility
83 diff -urN rpm.org/configure.ac rpm/configure.ac
84 --- rpm.org/configure.ac 2004-07-02 23:11:17.214544320 +0200
85 +++ rpm/configure.ac 2004-07-02 23:11:43.369568152 +0200
87 *86) RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
88 ia32e*) RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
89 amd64*) RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
90 -x86_64*) RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
91 +x86_64*) RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
92 alpha*) RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
93 sparc64*) RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
94 sparc*) RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;