diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac index 2c4d2888d2..282cf4618f 100644 --- a/configure.ac +++ b/configure.ac @@ -552,7 +552,19 @@ AS_IF([test "$GCC" = yes], [ # argument check. The performance drop is very little and Ubuntu enables # _FORTIFY_SOURCE=2 by default. So, let's support it for protecting us from # a mistake of silly C extensions. - RUBY_TRY_CFLAGS(-D_FORTIFY_SOURCE=2, [RUBY_APPEND_OPTION(XCFLAGS, -D_FORTIFY_SOURCE=2)]) + + # TODO: check if link succeeds with _FORTIFY_SOURCE=2. + AS_CASE(["$target_os"], + [mingw*], [ + fortify_source=no + ]) + AC_ARG_ENABLE(fortify_source, + AS_HELP_STRING([--disable-fortify-source], + [disable -D_FORTIFY_SOURCE=2 option, which causes link error on mingw]), + [fortify_source=$enableval]) + AS_IF([test "x$fortify_source" != xno], [ + RUBY_TRY_CFLAGS(-D_FORTIFY_SOURCE=2, [RUBY_APPEND_OPTION(XCFLAGS, -D_FORTIFY_SOURCE=2)]) + ]) : ${MJIT_HEADER_FLAGS='-P -dD'} @@ -1418,7 +1430,7 @@ AS_IF([test "$GCC" = yes], [ ]) AC_CACHE_CHECK([for __atomic builtins], [rb_cv_gcc_atomic_builtins], [ - AC_TRY_LINK([unsigned char atomic_var;], + AC_TRY_LINK([unsigned int atomic_var;], [ __atomic_exchange_n(&atomic_var, 0, __ATOMIC_SEQ_CST); __atomic_exchange_n(&atomic_var, 1, __ATOMIC_SEQ_CST); @@ -1433,7 +1445,7 @@ AS_IF([test "$GCC" = yes], [ ]) AC_CACHE_CHECK([for __sync builtins], [rb_cv_gcc_sync_builtins], [ - AC_TRY_LINK([unsigned char atomic_var;], + AC_TRY_LINK([unsigned int atomic_var;], [ __sync_lock_test_and_set(&atomic_var, 0); __sync_lock_test_and_set(&atomic_var, 1); @@ -1828,10 +1840,15 @@ AC_CHECK_FUNCS(getgidx) AC_CHECK_FUNCS(getgrnam) AC_CHECK_FUNCS(getgrnam_r) AC_CHECK_FUNCS(getgroups) +AC_CHECK_FUNCS(getlogin) +AC_CHECK_FUNCS(getlogin_r) AC_CHECK_FUNCS(getpgid) AC_CHECK_FUNCS(getpgrp) AC_CHECK_FUNCS(getpriority) +AC_CHECK_FUNCS(getpwnam) AC_CHECK_FUNCS(getpwnam_r) +AC_CHECK_FUNCS(getpwuid) +AC_CHECK_FUNCS(getpwuid_r) AC_CHECK_FUNCS(getresgid) AC_CHECK_FUNCS(getresuid) AC_CHECK_FUNCS(getrlimit) @@ -2392,11 +2409,11 @@ AS_IF([test x"$enable_pthread" = xyes], [ AC_CACHE_CHECK([arguments of pthread_setname_np], [rb_cv_func_pthread_setname_np_arguments], [rb_cv_func_pthread_setname_np_arguments= # Linux,AIX, (pthread_self(), name) - # NetBSD (pthread_self(), name, \"%s\") + # NetBSD (pthread_self(), \"%s\", name) # Darwin (name) for mac in \ "(pthread_self(), name)" \ - "(pthread_self(), name, \"%s\")" \ + "(pthread_self(), \"%s\", name)" \ "(name)" \ ; do AC_TRY_COMPILE([ @@ -2841,12 +2858,12 @@ main(void) stack_t ss; struct sigaction sa; - ss.ss_sp = malloc(SIGSTKSZ); + ss.ss_sp = malloc(16*1024); if (ss.ss_sp == NULL) { fprintf(stderr, "cannot allocate memory for sigaltstack\n"); return EXIT_FAILURE; } - ss.ss_size = SIGSTKSZ; + ss.ss_size = 16*1024; ss.ss_flags = 0; if (sigaltstack(&ss, NULL) == -1) { fprintf(stderr, "sigaltstack failed\n"); |