summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Do not enable RUBY_DEVEL by RUBY_PATCHLEVELJeremy Evans2022-08-091-2/+1
| | | | | | | | | This makes RUBY_DEVEL not enabled automatically. It still can be enabled manually. Test manually using RUBY_DEVEL in CI. Implements [Feature #17468]
* Resolve abi symbols from libruby.dylib when availableYuta Saito2022-08-041-4/+7
|
* Resolve abi symbol references from miniruby to avoid circular depsYuta Saito2022-08-041-3/+2
| | | | | | | | | | | | | | | | | | Adding `ruby` to `PREP` causes the following circular dependencies because `PREP` is used as a prerequisite by some targets required to build `ruby` target itself. ``` make: Circular .rbconfig.time <- ruby dependency dropped. make: Circular builtin_binary.inc <- ruby dependency dropped. make: Circular ext/extinit.c <- ruby dependency dropped. make: Circular ruby <- ruby dependency dropped. ``` Adding a new Make variable like `EXTPREP` only for exts may be also reasonable, but it would introduce another complexity into our build system. `-bundle_loader` doesn't care that link-time and run-time loader executables are different as long as bound symbols are provided, so it's ok to resolve from miniruby to simplify our build.
* Quote $(BUILTRUBY) so paths with spaces workAlan Wu2022-08-041-1/+1
|
* Link ext bundles with bundle loader option for newer ld64Yuta Saito2022-08-041-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ld64 shipped with Xcode 14 emits a warning when using `-undefined dynamic_lookup`. ``` ld: warning: -undefined dynamic_lookup may not work with chained fixups ``` Actually, `-undefined dynamic_lookup` doesn't work when: 1. Link a *shared library* with the option 2. Link it with a program that uses the chained-fixup introduced from macOS 12 and iOS 15 because `-undefined dynamic_lookup` uses lazy-bindings and they won't be bound while dyld fixes-up by traversing chained-fixup info. However, we build exts as *bundles* and they are loaded only through `dlopen`, so it's safe to use `-undefined dynamic_lookup` in theory. So the warning produced by ld64 is false-positive, and it results failure of option checking in configuration. Therefore, it would be an option to ignore the warning during our configuration. On the other hand, `-undefined dynamic_lookup` is already deprecated on all darwin platforms except for macOS, so it's good time to get rid of the option. ld64 also provides `-bundle_loader <executable>` option, which allows to resolve symbols defined in the executable symtab while linking. It behaves almost the same with `-undefined dynamic_lookup`, but it makes the following changes: 1. Require that unresolved symbols among input objects must be defined in the executable. 2. Lazy symbol binding will lookup only the symtab of the bundle loader executable. (`-undefined dynamic_lookup` lookups all symtab as flat namespace) This patch adds `-bundle_loader $(RUBY)` when non-EXTSTATIC configuration by assuming ruby executable can be linked before building exts. See "New Features" subsection under "Linking" section for chained fixup https://developer.apple.com/documentation/xcode-release-notes/xcode-13-release-notes
* Add --enable-yjit=dev_nodebug configure optionJohn Hawthorn2022-07-291-2/+6
|
* Add --enable-yjit=stats configure optionJohn Hawthorn2022-07-291-8/+19
|
* Fix invalid mkdir detection on OpenBSDJeremy Evans2022-07-081-0/+5
| | | | | | | | | | This was broken by 67e54ce4081abaa16774b93ccd33ccbd1d6c6531, which resulted in " -d" being used as the mkdir_p program. I think this is because $ac_install_sh has been set to '' at the point it is used. There's probably a better way to fix this, but this should allow the OpenBSD CI to continue to work until a better fix is in place.
* Fallback `mkdir_p` to `as_mkdir_p`Nobuyoshi Nakada2022-07-071-11/+2
| | | | | Assume `mkdir -p` to be race-free on recent systems. And we do not provide install-sh anyway.
* [Bug #18879] Fix macOS version detectionsNobuyoshi Nakada2022-06-271-3/+16
| | | | | | macOS's AvailabilityMacros.h does not contain macros for future versions. If a version macro is not defined, consider only earlier versions to be targeted.
* [Feature #18839] Drop support for gcc 3 [ci skip]Nobuyoshi Nakada2022-06-201-9/+5
|