summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* darwin: resolve rb symbols from ext by `-flat_namespace` to see libruby ↵Yuta Saito2022-12-231-9/+4
| | | | | | | | | | | | | | | transitively This repairs the assumption, which many fat-gem maintainer expect, "An extension built with --disable-shared Ruby is loadable from --enable-shared Ruby". By default all references resolved to a dynamic library use "two-level namespace", which record the library name and symbol name for each resolution entry. On the other hand, `-flat_namespace` discards the library name information and resolves symbols "flatly". This behavior is useful for us to ignore which image (`ruby` executable or `libruby.dylib`) provides rb symbols at runtime.
* configure.ac: limit miniruby dep to when bundle_loader needs itMike Dalessio2022-12-201-1/+1
| | | | | | | | See also e7bffe0 https://bugs.ruby-lang.org/issues/19239 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* YJIT: Improve the description about --enable-yjit (#6947)Takashi Kokubun2022-12-191-1/+1
|
* Suppress cross tool warning for pkg-config [ci skip]Nobuyoshi Nakada2022-12-181-0/+2
| | | | It is used from mkmf.rb on target environments.
* configure.ac: add miniruby to PREP when cross-compiling to darwinMike Dalessio2022-12-181-0/+4
| | | | | | | | miniruby is used to resolve symbols in ext bundles https://bugs.ruby-lang.org/issues/19239 Co-authored-by: Yuta Saito <kateinoigakukun@gmail.com>
* Make it so YJIT is no longer marked as experimental (#6909)Maxime Chevalier-Boisvert2022-12-121-1/+1
| | | | | Tested on production workloads at Shopify for > 1 year and proven to be quite stable. Enabling YJIT at run-time is still guarded behind the --yjit command-line option for now.
* YJIT: echo "\n" is not portableAlan Wu2022-12-021-1/+1
| | | | | | | It's unspecified by POSIX. zsh and dash give a newline and bash doesn't substitute it. Attributes don't have to be followed by a newline anyway, so just remove it. [Bug #19174]
* Fix up "Avoid bash specific variable substitution"Nobuyoshi Nakada2022-12-031-1/+1
| | | | | Keep `target_alias` empty if it is set to empty. If it is set to non empty, `os_version_style_transform` is not used.
* Avoid bash specific variable substitutionNobuyoshi Nakada2022-12-021-4/+7
| | | | | It may cause parse errors in some other sh even in never executed parts.
* YJIT: Make sure rustc's target matches before enabling (#6804)Alan Wu2022-11-241-2/+10
| | | | | | | | | | | | For people using Rosetta 2 on ARM Macs, it can happen that the rustc in the PATH compiles for x86_64 while clang is targeting ARM. We were enabling YJIT in these situations because the test program compiled fine, but caused linking failure later due to the architecture mismatch. Adjust the test program to fail when rustc's target arch is different from ruby's target arch. [Bug #19146]
* Add a comment about confusing code [ci skip]Takashi Kokubun2022-11-201-0/+1
|
* Add support for `sockaddr_un` on Windows. (#6513)Samuel Williams2022-11-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Windows: Fix warning about undefined if_indextoname() * Windows: Fix UNIXSocket on MINGW and make .pair more reliable * Windows: Use nonblock=true for read tests with scheduler * Windows: Move socket detection from File.socket? to File.stat Add S_IFSOCK to Windows and interpret reparse points accordingly. Enable tests that work now. * Windows: Use wide-char functions to UNIXSocket This fixes behaviour with non-ASCII characters. It also fixes deletion of temporary UNIXSocket.pair files. * Windows: Add UNIXSocket tests for specifics of Windows impl. * Windows: fix VC build due to missing _snwprintf Avoid usage of _snwprintf, since it fails linking ruby.dll like so: linking shared-library x64-vcruntime140-ruby320.dll x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol snwprintf x64-vcruntime140-ruby320.def : error LNK2001: unresolved external symbol vsnwprintf_l whereas linking miniruby.exe succeeds. This patch uses snprintf on the UTF-8 string instead. Also remove branch GetWindowsDirectoryW, since it doesn't work. * Windows: Fix dangling symlink test failures Co-authored-by: Lars Kanis <kanis@comcard.de>
* YJIT: Show YJIT build option in RUBY_DESCRIPTION (#6738)Takashi Kokubun2022-11-161-0/+3
| | | YJIT: Show YJIT profile in RUBY_DESCRIPTION
* Define YJIT_STATS on --enable-yjit=stats (#6710)Takashi Kokubun2022-11-101-0/+1
|
* Set up EXTSTATIC before checking itAlan Wu2022-11-101-17/+17
| | | | | The bundle_loader check for darwin checks EXTSTATIC, but previously the setup for the variable comes after the check. I had trouble building using --with-static-linked-ext on darwin before this change.
* YJIT: Improve checking message for rustc version (#6693)Alan Wu2022-11-081-1/+3
| | | | | | | | | | | | | | | | | | | Preivously we didn't have a "checking ...." line for this check and when rustc was too old, we would dump the error message to the console like: checking for rustc... rustc error: there is no argument named `x` --> <anon>:1:33 | 1 | fn main() { let x = 1; format!("{x}"); } | ^^^ error: aborting due to previous error `configure` checks usually don't do this and this might be confusing. With this commit it now says something like: checking whether rustc is new enough for YJIT... no
* YJIT: improve/fix code to automatically build YJIT when available (#6684)Maxime Chevalier-Boisvert2022-11-081-33/+29
| | | | | | | * YJIT: improve/fix code to automatically build YJIT when available * Set YJIT_SUPPORT=no * Fix rustc => $RUSTC
* Check `rustc` with the targetNobuyoshi Nakada2022-11-061-12/+22
|
* `--disable-jit-support` should disable YJIT successfullyNobuyoshi Nakada2022-11-061-6/+10
| | | | | Even if `rustc` is available, it should not be an error unless `--enable-yjit` is explicitly given.
* Disable YJIT support when cross-compilingNobuyoshi Nakada2022-11-061-1/+1
| | | | | As the target-list of `rustc` is different from `config.guess` and `config.sub`, `$target` cannot be used directly.
* Add `--target` option to RUSTC when cross-compilingNobuyoshi Nakada2022-11-061-6/+3
|
* Should use the configured rustc consistentlyNobuyoshi Nakada2022-11-061-1/+1
|
* Auto-enable YJIT build when rustc >= 1.58.0 present (#6662)Maxime Chevalier-Boisvert2022-11-041-4/+33
| | | | | | | | | * Auto-enable YJIT build when rustc >= 1.58.0 present * Try different incantation to have rustc output to stdout only * Add comment, remove whitespace * Try to detect if we are on a platform on which YJIT is supported
* Try -fstack-protector-strong on MinGWNobuyoshi Nakada2022-10-301-1/+3
| | | | The CI for MinGW has used it.
* Clear `_FORTIFY_SOURCE` before definitionNobuyoshi Nakada2022-10-291-1/+2
| | | | | | As clang on macOS defines this macro as 0 internally when a sanitizer option is given, clear it before definition to suppress redefinition warnings.
* YJIT: fold the "asm_comments" feature into "disasm" (#6591)Alan Wu2022-10-191-2/+2
| | | | | Previously, enabling only "disasm" didn't actually build. Since these two features are closely related and we don't really use one without the other, let's simplify and merge the two features together.
* Fix and improve coroutines for Darwin (macOS) ppc/ppc64. (#5975)Sergey Fedorov2022-10-191-4/+7
|
* Remove wrong dollarNobuyoshi Nakada2022-10-151-1/+1
|
* [Bug #16909] Honor the tool prefix against pkg-configNobuyoshi Nakada2022-10-021-5/+8
|
* YJIT: reverse configure.ac changes that disable `--yjit-stats` on Graviton1 ↵Maxime Chevalier-Boisvert2022-09-271-28/+7
| | | | | (#6457) Reverse configure.ac changes that disable YJIT stats on Graviton1
* Generate the revision.h before MakefileNobuyoshi Nakada2022-09-261-0/+8
| | | | | | Except for GNU make which updates makefiles automatically, repeating configure in the same directory causes `make` to stop whenever pulled a new commit. This is unexpected in CIs.
* Extract `RUBY_RELEASE_DATE` from also revision.hNobuyoshi Nakada2022-09-251-6/+9
| | | This make variable is very useful for daily build.
* YJIT: Support Rust 1.58.1 for --yjit-stats on Arm (#6410)Takashi Kokubun2022-09-231-7/+28
| | | | | | | | | | | | | | | | | | | | | | | * YJIT: Test Rust 1.58.1 as well on Cirrus * YJIT: Avoid using a Rust 1.60.0 feature * YJIT: Use autoconf to detect support * YJIT: We actually need to run it for checking it properly * YJIT: Try cfg!(target_feature = "lse") * Revert "YJIT: Try cfg!(target_feature = "lse")" This reverts commit 4e2a9ca9a9c83052c23b5e205c91bdf79e88342e. * YJIT: Add --features stats only when it works * Update configure.ac Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
* Allow --enable-yjit on OpenBSDJeremy Evans2022-09-231-0/+4
| | | | | | yjit uses _Unwind_* functions from libunwind. These functions are available in libc++abi (which requires libpthread), so add those to LDFLAGS if enabling yjit on OpenBSD.
* YJIT: Support MAKE=bmake for release buildAlan Wu2022-09-201-1/+5
| | | | | | | | | | This add support for bmake, which should allow building with `configure --enable-yjit` for the BSDs. Tested on FreeBSD 13 and on macOS with `configure MAKE=bmake` on a case-sensitive file system. It works by including a fragment into the Makefile through the configure script, similar to common.mk. It uses the always rebuild approach to keep build system changes minimal.
* [Bug #19005] dynamic_lookup linker option in external librariesNobuyoshi Nakada2022-09-171-12/+24
| | | | | | The warning against `-undefined dynamic_lookup` is just a warning yet, and many gems seem to pay no attention to warnings. Until it fails actually, keep it as a migration path, except for standard extension libraries and bundled extension gems.
* configure.ac: Apply suggestions from code review in #6366Kenta Murata2022-09-141-2/+2
| | | | Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.ac: Add --with-gmp-dir (#6366)Kenta Murata2022-09-141-5/+9
| | | | | | Add the `--with-gmp-dir` to specify the prefix directory of GMP. The`--without-gmp` option is preserved for convenience. It can be used to force to reject using GMP even if the `--with-gmp-dir` option is specified.
* -undefined dynamic_lookup is obsoleteNobuyoshi Nakada2022-09-141-1/+0
|
* configure.ac: Manage OPT_DIR better (#6367)Nobuyoshi Nakada2022-09-141-54/+43
| | | | | * Check rpath flag earlier * Manage OPT_DIR at once
* Autoconf 2.70 or AC_PROG_CC_C99 for earlier is checking for C99Nobuyoshi Nakada2022-09-121-27/+0
| | | | | | | It is no longer necessary to add it to `CFLAGS`/`CPPFLAGS` later. Furthermore, as `CPPFLAGS` is used also with C++ compiler, the option particular to C such as `-std=gnu99` results in an error.
* Define BOOTSTRAPRUBY from HAVE_BASERUBYNobuyoshi Nakada2022-09-071-8/+0
|
* Ensure BASERUBY when cross-compilingNobuyoshi Nakada2022-09-071-0/+1
|
* Drop Solaris support for MJITTakashi Kokubun2022-09-051-1/+1
| | | | | | | | | | | I tried to debug: http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20220905T070005Z.fail.html.gz but I don't have sudo privilege to install dependencies such as xz on that machine. Thus I can't extract a prebuilt libclang binary. Anyway, if we find out ABI is different from x86_64 / aarch64, we'd like to have sparc CI associated to GitHub to run `make mjit-bindgen`, but we can't. Supporting this could be too hard, so I'm leaving it for now.
* BOOTSTRAPRUBY needs fake.rb when cross-compilingNobuyoshi Nakada2022-09-031-0/+1
|
* Make sources by BASERUBY if available instead of minirubyNobuyoshi Nakada2022-09-031-1/+5
|
* Exclude LIBPATHENV wrapper from PREPNobuyoshi Nakada2022-09-031-1/+1
|
* Check if MSys shell can run a command with a drive letterNobuyoshi Nakada2022-09-031-2/+8
|
* Stop defining `RUBY_ABI_VERSION` if released versionsNobuyoshi Nakada2022-08-121-0/+6
| | | | | | As commented in include/ruby/internal/abi.h, since teeny versions of Ruby should guarantee ABI compatibility, `RUBY_ABI_VERSION` has no role in released versions of Ruby.
* Add `--enable-devel` configure optionNobuyoshi Nakada2022-08-111-3/+7
| | | | | Since `RUBY_DEVEL` in cppflags has no effect in the configure script and makefiles.