summaryrefslogtreecommitdiff
path: root/configure.ac
AgeCommit message (Collapse)Author
2023-09-06Exclude `-Wmisleading-indentation` when `-save-temps`Nobuyoshi Nakada
That option may be triggered wrongly by pre-processed files. Notes: Merged: https://github.com/ruby/ruby/pull/8382
2023-08-27Define bounds-checking interfaces macro for each fileNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/8301
2023-08-24Check that __builtin_mul_overflow can handle long longJeremy Evans
Fixes [Bug #17646] Patch from xtkoba (Tee KOBAYASHI) Notes: Merged: https://github.com/ruby/ruby/pull/8288
2023-08-17[Bug #19831] Remove duplicate library optionsNobuyoshi Nakada
`$(LIBRUBYARG_SHARED)` is included in `$(LIBS)` in extension libraries. Notes: Merged: https://github.com/ruby/ruby/pull/8235
2023-08-17RJIT: Remove macros inherited from MJIT but no longer usedNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/8224
2023-08-16Split installation from build sectionNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/8223
2023-08-15Group configure outputs on GitHub ActionsNobuyoshi Nakada
2023-07-07llvm-objcopy is not provided by Xcode Command Line Tools.Hiroshi SHIBATA
Revert "Disable YJIT if objcopy command is old" This reverts commit 75f8781c08da421d6bcfb2c3c8b7b74efea3bec2.
2023-07-06Disable YJIT if objcopy command is oldNobuyoshi Nakada
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/8034 Merged-By: nobu <nobu@ruby-lang.org>
2023-07-05Fixed build scripts for YARPJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/8007
2023-04-27Introduce --enable-rjit=disasmTakashi Kokubun
2023-04-24Avoid linking capstone by defaultTakashi Kokubun
Workaround for https://github.com/ruby/setup-ruby/pull/501#issuecomment-1520722486
2023-04-09Use tools appropriate with CCNobuyoshi Nakada
To get rid of mysterious errors such as: ``` /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: libruby.3.3-static.a(/): The end of the file was unexpectedly encountered ``` and ``` ld: warning: ignoring file ../../libruby.3.3-static.a, building for macOS-x86_64 but attempting to link with file built for macOS-x86_64 Undefined symbols for architecture x86_64: "_rb_rational_num", referenced from: ``` Notes: Merged: https://github.com/ruby/ruby/pull/7678 Merged-By: nobu <nobu@ruby-lang.org>
2023-04-08Include `--no-llvm-bc` option in `NM` macro only if usableNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/7677
2023-04-07[Bug#19161] Detect thread local storage specifierNobuyoshi Nakada
Checking by `__STDC_VERSION__` is unreliable because old gcc 4.8 supports `-std=gnu11` option but does not implement `_Thread_local`. Check the implementation directly instead. Notes: Merged: https://github.com/ruby/ruby/pull/7669
2023-03-24Add Dir.fchdirJeremy Evans
This is useful for passing directory file descriptors over UNIX sockets or to child processes to avoid TOCTOU vulnerabilities. The implementation follows the Dir.chdir code. This will raise NotImplementedError on platforms not supporting both fchdir and dirfd. Implements [Feature #19347] Notes: Merged: https://github.com/ruby/ruby/pull/7135
2023-03-24Fix ENABLE_MULTIARCHNobuyoshi Nakada
This macro is used in `ruby_init_loadpath()`, but was removed mistakenly at 31f4b2d86bfbc753cec9be376719acc4b120e944.
2023-03-20YJIT: Make dev_nodebug closer to dev (#7570)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-03-17RJIT: Use RJIT_STATS on --enable-rjit=devTakashi Kokubun
RUBY_DEBUG is too slow.
2023-03-10Bump the required BASERUBY version to 2.5 (#7504)Takashi Kokubun
[Misc #16671] I'd like to bump it to 2.7 to use pattern matching in tool/mk_builtin_loader.rb. However, I experienced a few blockers. 2.5 seems like the closest version that is easy enough to use on CIs, so let me bump the version to it as an intermediate step for it. I want to use &. and <<~ in 2.3 too. Known blockers: * AppVeyor Visual Studio 2015 doesn't have Ruby 2.7. You'd need to bump the version to Visual Studio 2019. * GitHub Actions windows-2019 doesn't have Ruby 2.7 either. You can use ruby/setup-ruby, but configure doesn't seem to work with it. * For ruby/ruby-ci-imaage, bionic doesn't have Ruby 2.7. I tried using ruby-build to build Ruby 2.7 from package, but the build on its CI seems to somehow loop forever when I do that. So I gave it up for now. We might want to wait until bionic becomes EOL. Note: * AppVeyor Visual Studio 2015 has Ruby <= 2.6.3 https://www.appveyor.com/docs/windows-images-software/#ruby * GitHub Actions windows-2019 uses Ruby 2.5.9 https://github.com/actions/runner-images/blob/main/images/win/Windows2019-Readme.md Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-03-10RJIT: Always enable --rjit-dump-disasmTakashi Kokubun
2023-03-09[Bug #19161] Check for TLS usabilityNobuyoshi Nakada
On all platforms using GCC, even other than darwin. Notes: Merged: https://github.com/ruby/ruby/pull/7481
2023-03-07Link libcapstone no matter what cargo doesTakashi Kokubun
libcapstone used to break when it's linked from C and Rust at the same time, but it doesn't seem to happen anymore. Maybe it's related to recent symbol hygiene changes. Thank you if that's the case. This commit allows you to make both --enable-rjit=dev and --enable-yjit=dev work in the same binary.
2023-03-07Allow enabling YJIT and RJIT independently (#7474)Takashi Kokubun
We used to require MJIT is supported when YJIT is supported. However, now that RJIT dropped some platforms that YJIT supports, it no longer makes sense. We should be able to enable only YJIT, and vice versa. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-03-06s/mjit/rjit/Takashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/7462
2023-03-06s/MJIT/RJIT/Takashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/7462
2023-03-06Remove obsoleted tool/mjit_tabs.rbTakashi Kokubun
2023-03-06Drop obsoleted MJIT header (#7458)Takashi Kokubun
RJIT doesn't need this. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2023-03-05Rely on YJIT's switch for nowTakashi Kokubun
Notes: Merged: https://github.com/ruby/ruby/pull/7448
2023-03-05Implement --mjit-dump-disasmTakashi Kokubun
2023-02-22Add support for LoongArch (#7343)小MAO钓鱼
* vm_dump.c: Dump machine registers on loongarch64 Linux. * coroutines: Support for native loongarch64 coroutines. --------- Co-authored-by: zangruochen <zangruochen@loongson.cn> Notes: Merged-By: nurse <naruse@airemix.jp>
2023-02-15Do not use `objcopy` on macOSNobuyoshi Nakada
On macOS, it is not used to localize symbols in dynamic libraries (libruby.dylib and libyjit.o). Instead, using `objcopy` which does not support recent mach-O causes linker errors as bellow. ``` linking shared-library libruby.3.3.dylib error: cannot parse the debug map for 'libruby.3.3.dylib': Invalid data was encountered while parsing the file linking ruby ld: malformed mach-o: LC_*_DYLIB load command string extends beyond end of load command file './libruby.3.3.dylib' clang: error: linker command failed with exit code 1 (use -v to see invocation) ```
2023-02-14Check if objcopy works to localize symbolNobuyoshi Nakada
LLVM objcopy does not support localizing symbols option, e.g, `--localize-symbol` and `--keep-global-symbol`, for MachO.
2023-02-08Extract include/ruby/internal/attr/packed_struct.hNobuyoshi Nakada
Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the macros bellow: * `RBIMPL_ATTR_PACKED_STRUCT_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_END` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END` Notes: Merged: https://github.com/ruby/ruby/pull/7268
2023-01-31Silence dozens of useless warnings from `nm` on macOSNobuyoshi Nakada
2023-01-27configure: Keep OBJCOPY even when visibility options are availableAlan Wu
YJIT will need it to address symbol leakage issue. Fallback to `:` when OBJCOPY is not available on the system. Co-authored-by: Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/7115
2023-01-27configure: Don't use use LD=clang, ld takes different flagsAlan Wu
This was a difference from using a GNU toolchain previously. It wasn't a problem because we don't invoke $(LD) in the Makefile currently. YJIT will want to invoke LD, so needs this consistency. Notes: Merged: https://github.com/ruby/ruby/pull/7115
2023-01-26Get rid of duplicate "--disable=gems" optionsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/7186
2023-01-23Silence dozens of useless warnings from `ranlib` on macOS [ci skip]Nobuyoshi Nakada
2022-12-25Enable arm64 coroutine implementation on OpenBSD/arm64Jeremy Evans
Tested by another OpenBSD developer and confirmed to significantly improve things.
2022-12-24Revert "darwin: resolve rb symbols from ext by `-flat_namespace` to see ↵NARUSE, Yui
libruby transitively" This reverts commit c5eefb7f37db2865891298dd1a1e60dff09560ad. Flat namespace breaks gems with C extention if its symbols conflict with ohter libraries.
2022-12-23darwin: resolve rb symbols from ext by `-flat_namespace` to see libruby ↵Yuta Saito
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. Notes: Merged: https://github.com/ruby/ruby/pull/7008
2022-12-20configure.ac: limit miniruby dep to when bundle_loader needs itMike Dalessio
See also e7bffe0 https://bugs.ruby-lang.org/issues/19239 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6959
2022-12-19YJIT: Improve the description about --enable-yjit (#6947)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-12-18Suppress cross tool warning for pkg-config [ci skip]Nobuyoshi Nakada
It is used from mkmf.rb on target environments.
2022-12-18configure.ac: add miniruby to PREP when cross-compiling to darwinMike Dalessio
miniruby is used to resolve symbols in ext bundles https://bugs.ruby-lang.org/issues/19239 Co-authored-by: Yuta Saito <kateinoigakukun@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/6944
2022-12-12Make it so YJIT is no longer marked as experimental (#6909)Maxime Chevalier-Boisvert
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. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-12-02YJIT: echo "\n" is not portableAlan Wu
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]
2022-12-03Fix up "Avoid bash specific variable substitution"Nobuyoshi Nakada
Keep `target_alias` empty if it is set to empty. If it is set to non empty, `os_version_style_transform` is not used.
2022-12-02Avoid bash specific variable substitutionNobuyoshi Nakada
It may cause parse errors in some other sh even in never executed parts. Notes: Merged: https://github.com/ruby/ruby/pull/6844