diff --git a/configure.ac b/configure.ac index f467a85ee9..dfe9e2a4a8 100644 --- a/configure.ac +++ b/configure.ac @@ -582,6 +582,50 @@ AS_IF([test "$GCC" = yes], [ [cygwin*|darwin*|netbsd*], [ # need lgamma_r(), finite() ], + [solaris*], [ + # ANSI (no XCFLAGS because this is C only) + # Because "-std=gnu99" affects existance of functions on Solaris, + # "-std=gnu99" will be appended to CPPFLAGS. + for ansi_options in -std=gnu99; do + RUBY_TRY_CFLAGS(${ansi_options}, [ + RUBY_APPEND_OPTIONS(CPPFLAGS, ${ansi_options}) + ], [ansi_options=]) + test "x${ansi_options}" = x || break + done + AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given) + AC_TRY_COMPILE([#include + #ifndef _XOPEN_SOURCE + #error _XOPEN_SOURCE is not defined + #endif + ], [], + [given_xopen_source=yes], [given_xopen_source=no]) + AC_MSG_RESULT($given_xopen_source) + AS_IF([test $given_xopen_source = no], [ + AC_MSG_CHECKING(appropriate _XOPEN_SOURCE value to define) + define_xopen_source="" + for tmp_xpg in 7 6 5; do + AS_IF([test x"$define_xopen_source" != x], [ + break + ]) + RUBY_WERROR_FLAG([AC_TRY_COMPILE([ + #define _XOPEN_SOURCE ${tmp_xpg}00 + #include + #ifndef _XPG${tmp_xpg} + #error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00 + #endif + ], [], + [define_xopen_source=${tmp_xpg}00], []) + ]) + done + AS_IF([test x"$define_xopen_source" = x], [ + define_xopen_source=no + ]) + AC_MSG_RESULT($define_xopen_source) + AS_IF([test x"$define_xopen_source" != xno], [ + RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source) + ]) + ]) + ], [ # ANSI (no XCFLAGS because this is C only) for ansi_options in -std=gnu99; do @@ -821,48 +865,6 @@ main() ac_cv_c_inline=no], [solaris*], [ LIBS="-lm $LIBS" ac_cv_func_vfork=no - AC_MSG_CHECKING(whether _XOPEN_SOURCE is already given) - AC_TRY_COMPILE([#include - #ifndef _XOPEN_SOURCE - #error _XOPEN_SOURCE is not defined - #endif - ], [], - [given_xopen_source=yes], [given_xopen_source=no]) - AC_MSG_RESULT($given_xopen_source) - AS_IF([test $given_xopen_source = no], [ - AC_MSG_CHECKING(appropriate _XOPEN_SOURCE value to define) - define_xopen_source="" - for tmp_xpg in 7 6 5; do - AS_IF([test x"$define_xopen_source" != x], [ - break - ]) - # Both AC_TRY_CPP and AC_TRY_COMPILE should pass - # because some options may not be set to CPPFLAGS. - AC_TRY_CPP([ - #define _XOPEN_SOURCE ${tmp_xpg}00 - #include - #ifndef _XPG${tmp_xpg} - #error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00 - #endif - ], [ - AC_TRY_COMPILE([ - #define _XOPEN_SOURCE ${tmp_xpg}00 - #include - #ifndef _XPG${tmp_xpg} - #error _XPG${tmp_xpg} should be defined by _XOPEN_SOURCE=${tmp_xpg}00 - #endif - ], [], - [define_xopen_source=${tmp_xpg}00], []) - ], []) - done - AS_IF([test x"$define_xopen_source" = x], [ - define_xopen_source=no - ]) - AC_MSG_RESULT($define_xopen_source) - AS_IF([test x"$define_xopen_source" != xno], [ - RUBY_APPEND_OPTIONS(CPPFLAGS, -D_XOPEN_SOURCE=$define_xopen_source) - ]) - ]) ], [haiku*], [ LIBS="$LIBS" # m lib is include in root