ruby: Fix cross-compilation with yjit
Otherwise it will produce `yjit.a` with the default target for the `rustc` compiler, which in turn turns out to be the build platform? It could be configured using the `RUST` environment variable, and since it's used without quoting it would expand the arguments added to it. Using `RUST = "rust --target ..."` I think would be undesirable for cross-compiling (and native), since it will save those arguments in `lib/ruby/*/*/rbconfig.rb`. Though that might be fine too. I guess. Note that 3.2 breaks differently. I haven't investigated it, since it's not the default anymore, and will eventually be dropped. Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com> (cherry picked from commit 75d6216956bfb72a2a1082da7237f74dddf8e123)
This commit is contained in:
@@ -177,6 +177,13 @@ let
|
||||
];
|
||||
propagatedBuildInputs = op jemallocSupport jemalloc;
|
||||
|
||||
env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform && yjitSupport) {
|
||||
# The ruby build system will use a bare `rust` command by default for its rust.
|
||||
# We can use the Nixpkgs rust wrapper to work around the fact that our Rust builds
|
||||
# for cross-compilation output for the build target by default.
|
||||
NIX_RUSTFLAGS = "--target ${stdenv.hostPlatform.rust.rustcTargetSpec}";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
# /build/ruby-2.7.7/lib/fileutils.rb:882:in `chmod':
|
||||
# No such file or directory @ apply2files - ...-ruby-2.7.7-devdoc/share/ri/2.7.0/system/ARGF/inspect-i.ri (Errno::ENOENT)
|
||||
|
||||
Reference in New Issue
Block a user