aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* detect clang++shyouhei2018-10-151-1/+1
| | | | | | | | Given $CC is clang-* in this case branch the sed should match against clang, not gcc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Pass cflags given to configure to mjitnobu2018-10-151-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Define PRIdPTR etcnobu2018-10-131-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.ac: do not use __builtin_longjmp on ppc64* Linuxodaira2018-10-091-0/+8
| | | | | | because it causes a segmentation fault with MJIT git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use cd -Pnobu2018-10-031-1/+1
| | | | | | | Setting PWD in the process does not let `cd` traverse symlinks in /bin/sh on macOS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* support --with-arch=x86_64hshyouhei2018-10-031-1/+1
| | | | | | | | | | | | | Recent apple machines describe themselves being x86_64h. That architecture is somehow supported by their C compiler and at least by recent clang. However config.sub does not know that fact so making universal binary targeting it is rejected by the program. Why not skip the check by config.sub. [fix GH-1971] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* move GCC version check from marshal.c to configure.acshyouhei2018-09-271-0/+4
| | | | | | | I think it should be done in configure git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: prepend the wrapper after CPP is setnobu2018-09-211-12/+15
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove -Wno-parentheses flag.nobu2018-09-211-1/+1
| | | | | | | | [Fix GH-1958] From: Jun Aruga <jaruga@redhat.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* darwin-cc: hide ld warningsnobu2018-09-211-4/+19
| | | | | | | | | * tool/darwin-cc: ld in Apple's recent Xcode warns text-based stub files, which are probably caused by Apple's broken package. hide such (and architecture deprecation) warnings during configuration to pass TRY_LDFLAGS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Ignore Xcode linker warningsnobu2018-09-201-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Make qsort_r() flavor detecting work if qsort_r() is a macronobu2018-09-131-2/+2
| | | | | | | | | | | | | | | | | | On FreeBSD we're going to switch to the GNU-ish version of qsort_r(). POSIX is also considering standardizing that one. To prevent faulty calls, we have a macro in place to throw a compiler error if a BSD-style qsort_r() call is performed on a patched system. Such an approach tends to be permitted by POSIX. The configure check we have in Ruby would fail if qsort_r() is a function macro. Add parentheses around it to prevent macro expansion and force the declaration of a prototype. [Fix GH-1954] From: Ed Schouten <ed@nuxi.nl> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* deduce versioned tools from CCnobu2018-09-121-3/+11
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix a typokazu2018-09-091-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* util.c: qsort_s in C11nobu2018-09-091-1/+1
| | | | | | | | | | | | | * configure.ac: macro for C11 to use qsort_s. * util.c (ruby_qsort): fix for C11 qsort_s. the comparison function for MSVCRT qsort_s is compatible with BSD qsort_r, but not with C11 qsort_s, in spite of its name. note that mingw defines __STDC_VERSION__ but uses qsort_s in MSVCRT, so the MSVCRT block needs to preced the C11 block. [ruby-core:88899] [Bug #15091] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: -fstack-protector-strongnobu2018-09-021-7/+10
| | | | | | | * configure.ac: use -fstack-protector-strong if available instead of -fstack-protector conditionally. [ruby-core:88788] [Misc #15053] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* random.c: SecRandomCopyBytesnobu2018-08-311-0/+8
| | | | | | | * random.c (fill_random_bytes_syscall): use SecRandomCopyBytes in Security framework on macOS 10.7 or later. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: printf prifix for int64_tnobu2018-08-271-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: use eventfd instead of pipe on Linuxnormal2018-08-241-0/+2
| | | | | | | | | | | Based on r64478, any regular user creating more than 1024 pipes on Linux will end up with tiny pipes with only a single page capacity. So avoid wasting user resources and use lighter eventfd on Linux. [ruby-core:88563] [Misc #15011] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: LIBPATHENV on macOSnobu2018-08-161-1/+1
| | | | | | | | * configure.ac (LIBPATHENV): use DYLD_FALLBACK_LIBRARY_PATH instead of DYLD_LIBRARY_PATH on macOS, to honor runtime paths embedded in the binaries. [ruby-core:88487] [Bug #14992] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread: use POSIX timer or thread to get rid of racesnormal2018-08-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | This closes race condition where GVL is uncontended and a thread receives a signal immediately before calling the blocking function when releasing GVL: 1) check interrupts 2) release GVL 3) blocking function If signal fires after 1) but before 3), that thread may never wake up if GVL is uncontended We also need to wakeup the ubf_list unconditionally on gvl_yield; because two threads can be yielding to each other while waiting on IO#close while waiting on threads in IO#read or IO#gets. [ruby-core:88360] [Misc #14937] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in: drop MJIT_DLDFLAGS_NOCOMPRESSk0kubun2018-08-131-2/+0
| | | | | | which is obsoleted by r64331 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Re-apply wrongly reverted r64330naruse2018-08-131-6/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* support compressed debug_linenaruse2018-08-131-2/+9
| | | | | | | | re-commit r64328 https://blogs.oracle.com/solaris/elf_section_compression-v2 https://gnu.wildebeest.org/blog/mjw/2016/01/13/elf-libelf-compressed-sections-and-elfutils/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: use linker_flag to LIBRUBY_DLDFLAGSnobu2018-08-131-6/+2
| | | | | | | | | | * configure.ac: use a feature flag `linker_flag`, than checking if the compiler is `GCC`. * configure.ac: append to LIBRUBY_DLDFLAGS once after initialized with DLDFLAGS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert "support compressed debug_line"naruse2018-08-131-3/+0
| | | | | | This reverts commit r64328 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* support compressed debug_linenaruse2018-08-131-0/+3
| | | | | | | https://blogs.oracle.com/solaris/elf_section_compression-v2 https://gnu.wildebeest.org/blog/mjw/2016/01/13/elf-libelf-compressed-sections-and-elfutils/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: use the correct argumentk0kubun2018-08-121-1/+1
| | | | | | | | | | | | for --compress-debug-sections. I thought "no" is the correct one because configure.ac has `AS_IF([test "x$compress_debug_sections" != xno]`, but it wasn't the case. This commit is needed to resolve errors like: /usr/bin/x86_64-linux-gnu-ld: invalid --compress-debug-sections option: `no' collect2: error: ld returned 1 exit status git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: MJIT_DLDFLAGS_NOCOMPRESSk0kubun2018-08-121-0/+2
| | | | | | | | | | | | | | is configured now, to force -Wl,--compress-debug-sections=no for MJIT only when the option is used in MJIT_DLDFLAGS. This needs to be done in configure.ac to resolve build failure like https://travis-ci.org/ruby/ruby/builds/415120662. Makefile.in: define it in mjit_config.h mjit_worker.c: replace hard-coded flag to MJIT_DLDFLAGS_NOCOMPRESS git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* upgrade the default WINNT versionnobu2018-08-111-2/+2
| | | | | | | | * configure.ac: set the default target Windows NT version to 0x0600, as well as mswin version since r50051. Windows XP has ended years ago. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* unrevert r63852 but keep SIGCHLD path disabled for win32normal2018-07-051-0/+2
| | | | | | | | | | | Reading win32/win32.c waitpid implementation, maybe waitpid(-1, ...) on that platform will never conflict with mjit use of waitpid. In any case, I've added WAITPID_USE_SIGCHLD macro to vm_core.h so it can be easy for Linux/BSD users to test (hopefully!) win32-compatible code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Revert r63758 and related commitsnaruse2018-07-041-2/+0
| | | | | | | The change is unstable on Windows. Please re-commit it when it correctly supports Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: [DOC] refine help messagesnobu2018-07-031-3/+3
| | | | | | | | | cflags, cppflags, and cxxflags are additional flags to auto configured flags, and ignored when the their respective autoconf default variables are given. [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use sigsetjmp on macOSnobu2018-06-301-0/+1
| | | | | | | SIGCHLD is used internally since r63758, the signal masks need to be restored. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hijack SIGCHLD handler for internal usenormal2018-06-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a global SIGCHLD handler to guard all callers of rb_waitpid. To work safely with multi-threaded programs, we introduce a VM-wide waitpid_lock to be acquired BEFORE fork/vfork spawns the process. This is to be combined with the new ruby_waitpid_locked function used by mjit.c in a non-Ruby thread. Ruby-level SIGCHLD handlers registered with Signal.trap(:CHLD) continues to work as before and there should be no regressions in any existing use cases. Splitting the wait queues for PID > 0 and groups (PID <= 0) ensures we favor PID > 0 callers. The disabling of SIGCHLD in rb_f_system is longer necessary, as we use deferred signal handling and no longer make ANY blocking waitpid syscalls in other threads which could "beat" the waitpid call made by rb_f_system. We prevent SIGCHLD from firing in normal Ruby Threads and only enable it in the timer-thread, to prevent spurious wakeups from in test/-ext-/gvl/test_last_thread.rb with MJIT enabled. I've tried to guard as much of the code for RUBY_SIGCHLD==0 using C "if" statements rather than CPP "#if" so to reduce the likelyhood of portability problems as the compiler will see more code. We also work to suppress false-positives from Process.wait(-1, Process::WNOHANG) to quiets warnings from spec/ruby/core/process/wait2_spec.rb with MJIT enabled. Lastly, we must implement rb_grantpt for ext/pty. We need a MJIT-compatible way of supporting grantpt(3) which may spawn the `pt_chown' binary and call waitpid(2) on it. [ruby-core:87605] [Ruby trunk Bug#14867] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* remove DISABLE_RUBYGEMS from config filesnobu2018-06-221-3/+2
| | | | | | | | | | | | | | * configure.ac: removed DISABLE_RUBYGEMS macro from config.h, not to rebuild everything when the flag changed. * configure.ac, win32/configure.bat: make USE_RUBYGEMS lowercase. * tool/mkconfig.rb: remove RUBYGEMS stuff from rbconfig.rb, not to reconfigure and rebuild all extension libraries. * Makefile.in (CPPFLAGS): enable/disable Rubygems by USE_RUBYGEMS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* prefer clock_gettimenobu2018-06-141-2/+4
| | | | | | | | | | | * configure.ac: clock_gettime or gettimeofday must exist. * process.c (rb_clock_gettime): prefer clock_gettime over gettimeofday, as the latter is obsolete in SUSv4. * random.c (fill_random_seed): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: move the checks of _XOPEN_SOURCE on Solarisngoto2018-05-161-33/+33
| | | | | | | | | * configure.ac (solaris*): Move the checks of _XOPEN_SOURCE to the location before r63443, to cover non-GCC compilers on Solaris. This partly reverts r63443. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: move checks of -std=gnu99 and _XOPEN_SOURCE on Solarisngoto2018-05-161-42/+44
| | | | | | | | | | | | | | * 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
* configure.ac: revert r63438ngoto2018-05-161-12/+11
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Change logic to check _XOPEN_SOURCE on Solarisngoto2018-05-151-11/+12
| | | | | | | | * configure.ac: Change logic to check _XOPEN_SOURCE on Solaris. With _XOPEN_SOURCE, "-std=gnu99" may also be added to CPPFLAGS. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: maybe with jemallocnobu2018-05-151-4/+10
| | | | | | | * configure.ac (--with-jemalloc): accept `maybe` (other than `yes` and `no`), check for jemalloc and use it if possible. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* -Wno-cast-function-typeshyouhei2018-05-151-0/+1
| | | | | | | | | | GCC 8.1+ introduced this warning in -Weverything. It does shed some lights on something, but rather annoying than useful ATM. Might be a subject to revert this option in a future. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: remove ineffective check on Solaris with GCCngoto2018-05-111-7/+0
| | | | | | | | | | * configure.ac (solaris): Remove ineffective check for -std=iso9899:1999 on Solaris with GCC. The "-std=iso9899:1999" was replaced by "-std=gnu99" by the commit r54895. The check is no longer effective after that, and two years have passed without error reports. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Remove the teeny part from the shared library name on macOSknu2018-04-291-4/+4
| | | | | | | | | | | | | | | | This will prevent macOS users from having to rebuild all extension libraries every time they upgrade ruby to a new teeny release. Before: - libruby.2.6.0.dylib - libruby.2.6.dylib -> libruby.2.6.0.dylib - libruby.dylib -> libruby.2.6.0.dylib After: - libruby.2.6.dylib - libruby.dylib -> libruby.2.6.dylib git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Prefer alignof() over _Alignof()shyouhei2018-04-091-2/+6
| | | | | | | to allow C++ programs include <ruby.h>. [Bug #14668] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Honor --silent optionnobu2018-04-031-2/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: string literal concatenationnobu2018-03-271-1/+1
| | | | | | | * configure.ac: bail out if string literal concatenation is not available, as it is used everywhere now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: named blocksnobu2018-03-241-10/+5
| | | | | | | * configure.ac: turned section block comments into named blocks. http://c16e.com/1603281120/ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.ac: DLDFLAGS without arch flagsnobu2018-03-161-1/+3
| | | | | | | | * configure.ac (DLDFLAGS): copy LDFLAGS before adding arch flags. multiple arch flags on universal binary make mjit_header.h failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e