summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.in14
-rw-r--r--ext/date/extconf.rb1
-rw-r--r--include/ruby/missing.h8
3 files changed, 16 insertions, 7 deletions
diff --git a/configure.in b/configure.in
index df4e0014bc..6cb013aa1f 100644
--- a/configure.in
+++ b/configure.in
@@ -839,6 +839,20 @@ if test "$GCC:${warnflags+set}:no" = yes::no; then
fi
RUBY_TRY_CFLAGS(-Qunused-arguments, [RUBY_APPEND_OPTIONS(rb_cv_wsuppress_flags, -Qunused-arguments)])
+for n in infinity nan; do
+ m=AS_TR_CPP($n)
+ AC_CACHE_CHECK([whether $m is available without C99 option], rb_cv_$n,
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_BOOL_COMPILE_TRY(AC_INCLUDES_DEFAULT([@%:@include <math.h>
+@%:@ifndef $m
+@%:@error no $m
+@%:@endif
+]), [1])], [eval rb_cv_$n=yes], [eval rb_cv_$n=no])])
+ if eval test '"$rb_cv_'$n'"' = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_]$m)
+ fi
+done
+
if test "$GCC" = yes; then
# NaCl's glibc build generates undefined references to __memset_chk.
# TODO(sbc): Remove this once NaCl's glibc is fixed.
diff --git a/ext/date/extconf.rb b/ext/date/extconf.rb
index a0c30fa948..9f7d3e8f0b 100644
--- a/ext/date/extconf.rb
+++ b/ext/date/extconf.rb
@@ -1,3 +1,2 @@
require 'mkmf'
-append_cflags("-std=iso9899:1999")
create_makefile('date_core')
diff --git a/include/ruby/missing.h b/include/ruby/missing.h
index f9e9daed3a..e81ad2769d 100644
--- a/include/ruby/missing.h
+++ b/include/ruby/missing.h
@@ -143,17 +143,13 @@ union bytesequence4_or_float {
};
#endif
-#ifdef INFINITY
-# define HAVE_INFINITY
-#else
+#ifndef INFINITY
/** @internal */
RUBY_EXTERN const union bytesequence4_or_float rb_infinity;
# define INFINITY (rb_infinity.float_value)
#endif
-#ifdef NAN
-# define HAVE_NAN
-#else
+#ifndef NAN
/** @internal */
RUBY_EXTERN const union bytesequence4_or_float rb_nan;
# define NAN (rb_nan.float_value)