]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-amd64.patch
- updated amd64 patch
[packages/rpm.git] / rpm-amd64.patch
CommitLineData
c6093d98
AM
1diff -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
4@@ -227,6 +227,15 @@
012a8819 5 return 0;
e1e03444
AM
6 }
7 /*@=boundswrite@*/
e1e03444
AM
8+static const char *getAlternateArch(const char *arch)
9+{
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;
16+}
012a8819 17
e1e03444
AM
18 /*@-boundswrite@*/
19 int readLine(Spec spec, int strip)
c6093d98 20@@ -319,13 +328,15 @@
e1e03444
AM
21 match = 0;
22 } else if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
23 const char *arch = rpmExpand("%{_target_cpu}", NULL);
24+ const char *alternate_arch = getAlternateArch(arch);
25 s += 7;
26- match = matchTok(arch, s);
27+ match = matchTok(arch, s) || (alternate_arch && matchTok(alternate_arch, s));
28 arch = _free(arch);
29 } else if (! strncmp("%ifnarch", s, sizeof("%ifnarch")-1)) {
30 const char *arch = rpmExpand("%{_target_cpu}", NULL);
31+ const char *alternate_arch = getAlternateArch(arch);
32 s += 8;
33- match = !matchTok(arch, s);
34+ match = !matchTok(arch, s) && (!alternate_arch || !matchTok(alternate_arch, s));
35 arch = _free(arch);
36 } else if (! strncmp("%ifos", s, sizeof("%ifos")-1)) {
37 const char *os = rpmExpand("%{_target_os}", NULL);
c6093d98
AM
38diff -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
41@@ -66,7 +66,7 @@
e1e03444
AM
42 ppc-linux) MULTILIBNO=1 ;;
43 ppc64-linux) LIB=lib64; MULTILIBNO=2 ;;
c6093d98 44 i?86-linux|pentium?-linux|athlon-linux) MULTILIBNO=1 ;;
e1e03444 45- x86_64-linux) LIB=lib64; MULTILIBNO=2 ;;
c6093d98 46+ x86_64-linux|amd64-linux|ia32e-linux) LIB=lib64; MULTILIBNO=2 ;;
e1e03444
AM
47 esac
48
49 if [ -n "$MULTILIBNO" ]; then
c6093d98
AM
50diff -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 @@
e1e03444
AM
54 }
55 # endif
56
012a8819
AM
57+# if defined(__linux__) && defined(__amd64__)
58+ {
e1e03444 59+ /* Defaults to amd64 if compiler supports __amd64__ */
012a8819
AM
60+ strcpy(un.machine, "amd64");
61+ }
62+# endif
63+
e1e03444
AM
64 # if defined(__linux__) && defined(__powerpc__)
65 {
66 unsigned pvr = 0;
c6093d98
AM
67diff -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
70@@ -272,9 +272,9 @@
e1e03444
AM
71
72 buildarchtranslate: ia64: ia64
73
74-buildarchtranslate: x86_64: x86_64
012a8819 75-buildarchtranslate: amd64: x86_64
c6093d98 76-buildarchtranslate: ia32e: x86_64
e1e03444 77+buildarchtranslate: x86_64: amd64
012a8819 78+buildarchtranslate: amd64: amd64
c6093d98 79+buildarchtranslate: ia32e: amd64
e1e03444
AM
80
81 #############################################################
82 # Architecture compatibility
This page took 0.037722 seconds and 4 git commands to generate.