summaryrefslogtreecommitdiffstats
path: root/ruby.h
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-26 09:16:37 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-26 09:16:37 +0000
commit62f5d3d1ecd8b0be7f9adfb41d42a9c2a015f699 (patch)
tree83cfc125dca92e0bfc7da2f6b48b88b67305122e /ruby.h
parentb6ee0162eeea0eef7de233a5d8836fac59592f3f (diff)
downloadruby-62f5d3d1ecd8b0be7f9adfb41d42a9c2a015f699.tar.gz
ruby-62f5d3d1ecd8b0be7f9adfb41d42a9c2a015f699.tar.xz
ruby-62f5d3d1ecd8b0be7f9adfb41d42a9c2a015f699.zip
* ruby.h: support LLP64 model. [ruby-talk:149524]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.h')
-rw-r--r--ruby.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/ruby.h b/ruby.h
index ddda5c396..ff67ab2b5 100644
--- a/ruby.h
+++ b/ruby.h
@@ -77,11 +77,18 @@ extern "C" {
# define alloca __alloca
#endif
-#if SIZEOF_LONG != SIZEOF_VOIDP
-# error ---->> ruby requires sizeof(void*) == sizeof(long) to be compiled. <<----
-#endif
+#if SIZEOF_LONG == SIZEOF_VOIDP
typedef unsigned long VALUE;
typedef unsigned long ID;
+#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
+typedef unsigned long long VALUE;
+typedef unsigned long long ID;
+#elif SIZEOF___INT64 == SIZEOF_VOIDP
+typedef unsigned __int64 VALUE;
+typedef unsigned __int64 ID;
+#else
+# error ---->> ruby requires sizeof(void*) == sizeof(long) to be compiled. <<----
+#endif
#ifdef __STDC__
# include <limits.h>