aboutsummaryrefslogtreecommitdiffstats
path: root/src/build-data/detect_arch.cpp
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2018-02-05 10:48:41 -0500
committerJack Lloyd <[email protected]>2018-02-05 16:37:59 -0500
commit5f55f0eac95cd6f1c2962aef261af285bf37bfb6 (patch)
treecf68b6bd6636997459e270614bee7446640aead4 /src/build-data/detect_arch.cpp
parent0d63e98483e304a385013a4568312ab94dff3822 (diff)
Detect compiler architecture at configure time
Avoids build confusions like #1442
Diffstat (limited to 'src/build-data/detect_arch.cpp')
-rw-r--r--src/build-data/detect_arch.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/build-data/detect_arch.cpp b/src/build-data/detect_arch.cpp
new file mode 100644
index 000000000..aa5054093
--- /dev/null
+++ b/src/build-data/detect_arch.cpp
@@ -0,0 +1,50 @@
+
+#if defined(__x86_64__) || defined(_M_X64)
+ X86_64
+
+#elif defined(__i386__) || defined(__i386) || defined(_M_IX86)
+ X86_32
+
+#elif defined(__aarch64__) || defined(__ARM_ARCH_ISA_A64)
+ ARM64
+
+#elif defined(__arm__) || defined(_M_ARM) || defined(__ARM_ARCH_7A__)
+ ARM32
+
+#elif defined(__powerpc64__) || defined(__ppc64__) || defined(_ARCH_PPC64)
+ PPC64
+
+#elif defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC)
+ PPC32
+
+#elif defined(__mips__) || defined(__mips)
+ MIPS32
+
+#elif defined(__sparc__)
+ SPARC32
+
+#elif defined(__alpha__)
+ ALPHA
+
+#elif defined(__hppa__) || defined(__hppa)
+ HPPA
+
+#elif defined(__ia64__)
+ IA64
+
+#elif defined(__m68k__)
+ M68K
+
+#elif defined(__sh__)
+ SH
+
+#elif defined(__s390x__)
+ S390X
+
+#elif defined(__s390__)
+ S390
+
+#else
+ UNKNOWN
+
+#endif