summaryrefslogtreecommitdiffstats
path: root/Modules/CMakeCompilerABI.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-01-21 23:30:17 (GMT)
committerBrad King <brad.king@kitware.com>2008-01-21 23:30:17 (GMT)
commita28b197b11f4b647c67a6914c731077972449343 (patch)
tree48e3cad97678cc49ef2b63c210d4e712a4dc58fa /Modules/CMakeCompilerABI.h
parent19d22f6105ae064378e9175bed6a01b197e2eb5d (diff)
downloadCMake-a28b197b11f4b647c67a6914c731077972449343.zip
CMake-a28b197b11f4b647c67a6914c731077972449343.tar.gz
CMake-a28b197b11f4b647c67a6914c731077972449343.tar.bz2
ENH: Generalize the check for sizeof void* to detect more ABI information.
Diffstat (limited to 'Modules/CMakeCompilerABI.h')
-rw-r--r--Modules/CMakeCompilerABI.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/Modules/CMakeCompilerABI.h b/Modules/CMakeCompilerABI.h
new file mode 100644
index 0000000..8980abb
--- /dev/null
+++ b/Modules/CMakeCompilerABI.h
@@ -0,0 +1,26 @@
+/*--------------------------------------------------------------------------*/
+
+/* Size of a pointer-to-data in bytes. */
+#define SIZEOF_DPTR (sizeof(void*))
+const char info_sizeof_dptr[] = {
+ 'I', 'N', 'F', 'O', ':', 's', 'i', 'z', 'e', 'o', 'f', '_', 'd', 'p', 't', 'r', '[',
+ ('0' + ((SIZEOF_DPTR / 10)%10)),
+ ('0' + (SIZEOF_DPTR % 10)),
+ ']','\0'};
+
+/*--------------------------------------------------------------------------*/
+
+/* Application Binary Interface. */
+#if defined(__sgi) && defined(_ABIO32)
+# define ABI_ID "ELF O32"
+#elif defined(__sgi) && defined(_ABIN32)
+# define ABI_ID "ELF N32"
+#elif defined(__sgi) && defined(_ABI64)
+# define ABI_ID "ELF 64"
+#elif defined(__ELF__)
+# define ABI_ID "ELF"
+#endif
+
+#if defined(ABI_ID)
+static char const info_abi[] = "INFO:abi[" ABI_ID "]";
+#endif