1 |
/* Undefine some built-ins */ |
2 |
#ifdef linux |
3 |
#undef linux |
4 |
#define _multiarch_defined_linux |
5 |
#endif |
6 |
#ifdef i386 |
7 |
#undef i386 |
8 |
#define _multiarch_defined_i386 |
9 |
#endif |
10 |
#ifdef sparc |
11 |
#undef sparc |
12 |
#define _multiarch_defined_sparc |
13 |
#endif |
14 |
#ifdef mips |
15 |
#undef mips |
16 |
#define _multiarch_defined_mips |
17 |
#endif |
18 |
#ifdef arm |
19 |
#undef arm |
20 |
#define _multiarch_defined_arm |
21 |
#endif |
22 |
|
23 |
/* Undefine some interfering definitions (not built-ins) */ |
24 |
/* We can only redefine value 1, so we let it fail with other values */ |
25 |
#if x86_64 == 1 |
26 |
#define _multiarch_defined_x86_64 |
27 |
#undef x86_64 |
28 |
#endif |
29 |
#if ppc64 == 1 |
30 |
#define _multiarch_defined_ppc64 |
31 |
#undef ppc64 |
32 |
#endif |
33 |
#if ppc == 1 |
34 |
#define _multiarch_defined_ppc |
35 |
#undef ppc |
36 |
#endif |
37 |
#if sparc64 == 1 |
38 |
#define _multiarch_defined_sparc64 |
39 |
#undef sparc64 |
40 |
#endif |
41 |
#if s390x == 1 |
42 |
#define _multiarch_defined_s390x |
43 |
#undef s390x |
44 |
#endif |
45 |
#if s390 == 1 |
46 |
#define _multiarch_defined_s390 |
47 |
#undef s390 |
48 |
#endif |
49 |
#if ia64 == 1 |
50 |
#define _multiarch_defined_ia64 |
51 |
#undef ia64 |
52 |
#endif |
53 |
#if alpha == 1 |
54 |
#define _multiarch_defined_alpha |
55 |
#undef alpha |
56 |
#endif |
57 |
#if mipsel == 1 |
58 |
#define _multiarch_defined_mipsel |
59 |
#undef mipsel |
60 |
#endif |
61 |
#if armeb == 1 |
62 |
#define _multiarch_defined_armeb |
63 |
#undef armeb |
64 |
#endif |
65 |
|
66 |
/* Dispatch arch dependent header */ |
67 |
#if defined(__linux__) |
68 |
#define _MULTIARCH_OS linux |
69 |
#endif |
70 |
#define _MULTIARCH_MAKE_HEADER(arch,header) <multiarch-arch-_MULTIARCH_OS/header> |
71 |
#if defined(__x86_64__) |
72 |
#include _MULTIARCH_MAKE_HEADER(x86_64,_MULTIARCH_HEADER) |
73 |
#elif defined(__i386__) |
74 |
#include _MULTIARCH_MAKE_HEADER(i386,_MULTIARCH_HEADER) |
75 |
#elif defined(__powerpc64__) |
76 |
#include _MULTIARCH_MAKE_HEADER(ppc64,_MULTIARCH_HEADER) |
77 |
#elif defined(__powerpc__) |
78 |
#include _MULTIARCH_MAKE_HEADER(ppc,_MULTIARCH_HEADER) |
79 |
#elif defined(__sparc__) && defined(__arch64__) |
80 |
#include _MULTIARCH_MAKE_HEADER(sparc64,_MULTIARCH_HEADER) |
81 |
#elif defined(__sparc__) |
82 |
#include _MULTIARCH_MAKE_HEADER(sparc,_MULTIARCH_HEADER) |
83 |
#elif defined(__s390x__) |
84 |
#include _MULTIARCH_MAKE_HEADER(s390x,_MULTIARCH_HEADER) |
85 |
#elif defined(__s390__) |
86 |
#include _MULTIARCH_MAKE_HEADER(s390,_MULTIARCH_HEADER) |
87 |
#elif defined(__ia64__) |
88 |
#include _MULTIARCH_MAKE_HEADER(ia64,_MULTIARCH_HEADER) |
89 |
#elif defined(__alpha__) |
90 |
#include _MULTIARCH_MAKE_HEADER(alpha,_MULTIARCH_HEADER) |
91 |
#elif defined(__mips__) |
92 |
#if defined(__BIG_ENDIAN__) |
93 |
#include _MULTIARCH_MAKE_HEADER(mips,_MULTIARCH_HEADER) |
94 |
#else |
95 |
#include _MULTIARCH_MAKE_HEADER(mipsel,_MULTIARCH_HEADER) |
96 |
#endif |
97 |
#elif defined(__arm__) |
98 |
#if defined(__BIG_ENDIAN__) |
99 |
#include _MULTIARCH_MAKE_HEADER(armeb,_MULTIARCH_HEADER) |
100 |
#else |
101 |
#include _MULTIARCH_MAKE_HEADER(arm,_MULTIARCH_HEADER) |
102 |
#endif |
103 |
#else |
104 |
#error "Unknown architecture, please submit bug report" |
105 |
#endif |
106 |
#undef _MULTIARCH_MAKE_HEADER |
107 |
#undef _MULTIARCH_OS |
108 |
#undef _MULTIARCH_HEADER |
109 |
|
110 |
/* Redefine built-ins */ |
111 |
#ifdef _multiarch_defined_linux |
112 |
#undef _multiarch_defined_linux |
113 |
#define linux 1 |
114 |
#endif |
115 |
#ifdef _multiarch_defined_i386 |
116 |
#undef _multiarch_defined_i386 |
117 |
#define i386 1 |
118 |
#endif |
119 |
#ifdef _multiarch_defined_sparc |
120 |
#undef _multiarch_defined_sparc |
121 |
#define sparc 1 |
122 |
#endif |
123 |
#ifdef _multiarch_defined_mips |
124 |
#undef _multiarch_defined_mips |
125 |
#define mips 1 |
126 |
#endif |
127 |
#ifdef _multiarch_defined_arm |
128 |
#undef _multiarch_defined_arm |
129 |
#define arm 1 |
130 |
#endif |
131 |
|
132 |
/* Redefine interfering defitions */ |
133 |
#ifdef _multiarch_defined_x86_64 |
134 |
#undef _multiarch_defined_x86_64 |
135 |
#define x86_64 1 |
136 |
#endif |
137 |
#ifdef _multiarch_defined_ppc64 |
138 |
#undef _multiarch_defined_ppc64 |
139 |
#define ppc64 1 |
140 |
#endif |
141 |
#ifdef _multiarch_defined_ppc |
142 |
#undef _multiarch_defined_ppc |
143 |
#define ppc 1 |
144 |
#endif |
145 |
#ifdef _multiarch_defined_sparc64 |
146 |
#undef _multiarch_defined_sparc64 |
147 |
#define sparc64 1 |
148 |
#endif |
149 |
#ifdef _multiarch_defined_s390x |
150 |
#undef _multiarch_defined_s390x |
151 |
#define s390x 1 |
152 |
#endif |
153 |
#ifdef _multiarch_defined_s390 |
154 |
#undef _multiarch_defined_s390 |
155 |
#define s390 1 |
156 |
#endif |
157 |
#ifdef _multiarch_defined_ia64 |
158 |
#undef _multiarch_defined_ia64 |
159 |
#define ia64 1 |
160 |
#endif |
161 |
#ifdef _multiarch_defined_alpha |
162 |
#undef _multiarch_defined_alpha |
163 |
#define alpha 1 |
164 |
#endif |
165 |
#ifdef _multiarch_defined_mipsel |
166 |
#undef _multiarch_defined_mipsel |
167 |
#define mipsel 1 |
168 |
#endif |
169 |
#ifdef _multiarch_defined_armeb |
170 |
#undef _multiarch_defined_armeb |
171 |
#define armeb 1 |
172 |
#endif |