|
|
@@ -48,5 +48,108 @@ PRINT *, 'INFO:sizeof_dptr[4]'
|
|
|
#if defined(__ELF__)
|
|
|
PRINT *, 'INFO:abi[ELF]'
|
|
|
#endif
|
|
|
+
|
|
|
+#if 0
|
|
|
+! Sync with
|
|
|
+! Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
|
|
|
+! Modules/CMakeCompilerABI.h
|
|
|
+! Modules/CMakeFortranCompilerABI.F
|
|
|
+! Modules/Internal/CMakeParseCompilerArchitectureId.cmake
|
|
|
+#endif
|
|
|
+#if defined(__APPLE__) && defined(__arm64__)
|
|
|
+# if defined(__ARM64_ARCH_8_32__)
|
|
|
+PRINT *, 'INFO:arch[arm64_32]'
|
|
|
+# elif defined(__arm64e__)
|
|
|
+PRINT *, 'INFO:arch[arm64e]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[arm64]'
|
|
|
+# endif
|
|
|
+#elif defined(_MSC_VER) && defined(_M_ARM64EC)
|
|
|
+PRINT *, 'INFO:arch[arm64ec]'
|
|
|
+#elif defined(_MSC_VER) && defined(_M_ARM64)
|
|
|
+PRINT *, 'INFO:arch[arm64]'
|
|
|
+#elif defined(__arm64ec__)
|
|
|
+PRINT *, 'INFO:arch[arm64ec]'
|
|
|
+#elif defined(__aarch64__)
|
|
|
+PRINT *, 'INFO:arch[aarch64]'
|
|
|
+#elif __ARM_ARCH == 7 || _M_ARM == 7 || defined(__ARM_ARCH_7__)
|
|
|
+# if defined(__APPLE__) && defined(__ARM_ARCH_7K__)
|
|
|
+PRINT *, 'INFO:arch[armv7k]'
|
|
|
+# elif defined(__APPLE__) && defined(__ARM_ARCH_7S__)
|
|
|
+PRINT *, 'INFO:arch[armv7s]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[armv7]'
|
|
|
+# endif
|
|
|
+#elif __ARM_ARCH == 6 || _M_ARM == 6 || defined(__ARM_ARCH_6__)
|
|
|
+PRINT *, 'INFO:arch[armv6]'
|
|
|
+#elif __ARM_ARCH == 5 || _M_ARM == 5 || defined(__ARM_ARCH_5__)
|
|
|
+PRINT *, 'INFO:arch[armv5]'
|
|
|
+#elif defined(__alpha) || defined(__alpha) || defined(_M_ALPHA)
|
|
|
+PRINT *, 'INFO:arch[alpha]'
|
|
|
+#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || \
|
|
|
+ defined(__amd64__) || defined(_M_X64) || defined(_M_AMD64)
|
|
|
+PRINT *, 'INFO:arch[x86_64]'
|
|
|
+#elif defined(__i686) || defined(__i686__) || _M_IX86 == 600
|
|
|
+PRINT *, 'INFO:arch[i686]'
|
|
|
+#elif defined(__i586) || defined(__i586__) || _M_IX86 == 500
|
|
|
+PRINT *, 'INFO:arch[i586]'
|
|
|
+#elif defined(__i486) || defined(__i486__) || _M_IX86 == 400
|
|
|
+PRINT *, 'INFO:arch[i486]'
|
|
|
+#elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
|
|
|
+PRINT *, 'INFO:arch[i386]'
|
|
|
+#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
|
|
|
+PRINT *, 'INFO:arch[ia64]'
|
|
|
+#elif defined(__loongarch64)
|
|
|
+PRINT *, 'INFO:arch[loongarch64]'
|
|
|
+#elif defined(__loongarch__)
|
|
|
+PRINT *, 'INFO:arch[loongarch32]'
|
|
|
+#elif defined(__m68k__)
|
|
|
+PRINT *, 'INFO:arch[m68k]'
|
|
|
+#elif defined(__mips64) || defined(__mips64__)
|
|
|
+# if defined(_MIPSEL)
|
|
|
+PRINT *, 'INFO:arch[mips64el]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[mips64]'
|
|
|
+# endif
|
|
|
+#elif defined(__mips) || defined(__mips__)
|
|
|
+# if defined(_MIPSEL)
|
|
|
+PRINT *, 'INFO:arch[mipsel]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[mips]'
|
|
|
+# endif
|
|
|
+#elif defined(__riscv) && __riscv_xlen == 64
|
|
|
+PRINT *, 'INFO:arch[riscv64]'
|
|
|
+#elif defined(__riscv) && __riscv_xlen == 32
|
|
|
+PRINT *, 'INFO:arch[riscv32]'
|
|
|
+#elif defined(__s390x__)
|
|
|
+PRINT *, 'INFO:arch[s390x]'
|
|
|
+#elif defined(__s390__)
|
|
|
+PRINT *, 'INFO:arch[s390]'
|
|
|
+#elif defined(__sparcv9) || defined(__sparcv9__) || defined(__sparc64__)
|
|
|
+PRINT *, 'INFO:arch[sparcv9]'
|
|
|
+#elif defined(__sparc) || defined(__sparc__)
|
|
|
+PRINT *, 'INFO:arch[sparc]'
|
|
|
+#elif defined(__hppa) || defined(__hppa__)
|
|
|
+# if defined(__LP64__)
|
|
|
+PRINT *, 'INFO:arch[parisc64]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[parisc]'
|
|
|
+# endif
|
|
|
+#elif defined(__ppc64__) || defined(__powerpc64__) || defined(__PPC64__) || \
|
|
|
+ defined(_ARCH_PPC64)
|
|
|
+# if defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__)
|
|
|
+PRINT *, 'INFO:arch[ppc64le]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[ppc64]'
|
|
|
+# endif
|
|
|
+#elif defined(__ppc__) || defined(__powerpc__) || defined(__PPC__) || \
|
|
|
+ defined(_ARCH_PPC)
|
|
|
+# if defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__)
|
|
|
+PRINT *, 'INFO:arch[ppcle]'
|
|
|
+# else
|
|
|
+PRINT *, 'INFO:arch[ppc]'
|
|
|
+# endif
|
|
|
+#endif
|
|
|
+
|
|
|
PRINT *, 'ABI Detection'
|
|
|
end program
|