diff options
author | ngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-16 04:11:20 +0000 |
---|---|---|
committer | ngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-16 04:11:20 +0000 |
commit | 88cb22e979d28bbb81519ab06c85b2d4776def11 (patch) | |
tree | ba58357028a2dbab94b02b2688598d1382a5abdc /configure.ac | |
parent | 52b29a3314e7dc2b1ca096ee39d78b12611982bc (diff) |
configure.ac: move checks of -std=gnu99 and _XOPEN_SOURCE on Solaris
* configure.ac (ansi_options): On Solaris, "-std=gnu99" should be
appended to CPPFLAGS instead of warnflags and strict_warnflags,
because the flag affects existance of functions and macros.
* configure.ac (solaris*): Check _XOPEN_SOURCE just after checking
"-std=gnu99" on Solaris. Because _XOPEN_SOURCE also affects existance
of many functions and macros, it is good to define it earlier.
The check is simplified to use AC_TRY_COMPILE with RUBY_WERROR_FLAG.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 86 |
1 files changed, 44 insertions, 42 deletions
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 <unistd.h> + #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 <unistd.h> + #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 <unistd.h> - #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 <unistd.h> - #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 <unistd.h> - #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 |