summaryrefslogtreecommitdiffstats
path: root/multiarch-dispatch.h
diff options
context:
space:
mode:
Diffstat (limited to 'multiarch-dispatch.h')
-rw-r--r--multiarch-dispatch.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/multiarch-dispatch.h b/multiarch-dispatch.h
new file mode 100644
index 0000000..75f6a50
--- /dev/null
+++ b/multiarch-dispatch.h
@@ -0,0 +1,53 @@
+/* Undefine some built-ins */
+#ifdef linux
+#undef linux
+#define _multiarch_defined_linux
+#endif
+#ifdef i386
+#undef i386
+#define _multiarch_defined_i386
+#endif
+#ifdef sparc
+#undef sparc
+#define _multiarch_defined_sparc
+#endif
+
+/* Dispatch arch dependent header */
+#define _MULTIARCH_MAKE_HEADER(arch,header) <multiarch-arch-linux/header>
+#if defined(__x86_64__)
+#include _MULTIARCH_MAKE_HEADER(x86_64,_MULTIARCH_HEADER)
+#elif defined(__i386__)
+#include _MULTIARCH_MAKE_HEADER(i386,_MULTIARCH_HEADER)
+#elif defined(__powerpc64__)
+#include _MULTIARCH_MAKE_HEADER(ppc64,_MULTIARCH_HEADER)
+#elif defined(__powerpc__)
+#include _MULTIARCH_MAKE_HEADER(ppc,_MULTIARCH_HEADER)
+#elif defined(__sparc_v9__)
+#include _MULTIARCH_MAKE_HEADER(sparc64,_MULTIARCH_HEADER)
+#elif defined(__sparc__)
+#include _MULTIARCH_MAKE_HEADER(sparc,_MULTIARCH_HEADER)
+#elif defined(__s390x__)
+#include _MULTIARCH_MAKE_HEADER(s390x,_MULTIARCH_HEADER)
+#elif defined(__s390__)
+#include _MULTIARCH_MAKE_HEADER(s390,_MULTIARCH_HEADER)
+#elif defined(__ia64__)
+#include _MULTIARCH_MAKE_HEADER(ia64,_MULTIARCH_HEADER)
+#elif defined(__alpha__)
+#include _MULTIARCH_MAKE_HEADER(alpha,_MULTIARCH_HEADER)
+#endif
+#undef _MULTIARCH_MAKE_HEADER
+#undef _MULTIARCH_HEADER
+
+/* Redefine built-ins */
+#ifdef _multiarch_defined_linux
+#undef _multiarch_defined_linux
+#define linux 1
+#endif
+#ifdef _multiarch_defined_i386
+#undef _multiarch_defined_i386
+#define i386 1
+#endif
+#ifdef _multiarch_defined_sparc
+#undef _multiarch_defined_sparc
+#define sparc 1
+#endif