summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-14 02:54:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-14 02:54:08 +0000
commit7919e7f7e8fa4965ae297ecfed826b0f0ecfea93 (patch)
treeac0764f7af51ce3c50d05a4338485018b52a589e
parent049b420f687620b0d7c802cbd75d5272a0e80106 (diff)
* lib/mkmf.rb (try_var): should fail for functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--configure.in7
-rw-r--r--lib/mkmf.rb2
3 files changed, 8 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index e5243c4f54..ff68f55fea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
-Fri Dec 14 10:01:40 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Dec 14 11:54:06 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (RUBY_CHECK_VARTYPE): check if a variable is defined
and its type.
@@ -7,6 +7,8 @@ Fri Dec 14 10:01:40 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* missing/strftime.c (strftime): fix for timezone. [ruby-dev:32536]
+ * lib/mkmf.rb (try_var): should fail for functions.
+
Tue Dec 11 00:04:05 2007 Akinori MUSHA <knu@iDaemons.org>
* array.c (rb_ary_slice_bang): If an invalid negative index (<
diff --git a/configure.in b/configure.in
index 6a5f302d10..0a73dd7581 100644
--- a/configure.in
+++ b/configure.in
@@ -577,13 +577,14 @@ AC_CACHE_CHECK([for external $1], rb_cv_var_$1,
[rb_cv_var_$1=no
AC_TRY_COMPILE([#define _XOPEN_SOURCE 1
$2
- void *t;],
+ const volatile void *volatile t;],
[t = &(&$1)[0];],
[for t in $3; do
AC_TRY_COMPILE([#define _XOPEN_SOURCE 1
$2
- extern $t $1;],
- [void *t = &(&$1)[0];],
+ extern $t $1;
+ const volatile void *volatile t;],
+ [t = &(&$1)[0];],
[rb_cv_var_$1=$t; break])
done])])
if test "[$rb_cv_var_]$1" != no; then
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 35750b5051..aea6d9986f 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -445,7 +445,7 @@ def try_var(var, headers = nil, &b)
#{headers}
/*top*/
int main() { return 0; }
-int t() { const volatile void *volatile p; p = (void *)&#{var}; return 0; }
+int t() { const volatile void *volatile p; p = &(&#{var})[0]; return 0; }
SRC
end