[ruby-core:120285] [Ruby master Bug#20961] MMTk build on macOS missing librubygc.mmtk.bundle
From:
"nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date:
2024-12-18 00:40:43 UTC
List:
ruby-core #120285
Issue #20961 has been updated by nobu (Nobuyoshi Nakada).
shan (Shannon Skipper) wrote:
> ``` shell
> --with-modular-gc="gc/mmtk/target/release"
IIRC, this option requires an absolute path.
----------------------------------------
Bug #20961: MMTk build on macOS missing librubygc.mmtk.bundle
https://bugs.ruby-lang.org/issues/20961#change-111050
* Author: shan (Shannon Skipper)
* Status: Open
* ruby -v: ruby 3.4.0dev (2024-12-18 master 9715131c32) +YJIT +MN +PRISM [arm64-darwin24.2.0]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
Hi! I'm excited about the new modular GC feature. I just wanted to report that when I build Ruby 3.4.0-rc1 with MMTk on latest macOS 15.2 I seem to be encountering a linking issue. Whether I `cargo build --release` or `ruby extconf.rb && make` a `target/release/libmmtk_ruby.dylib` is created. A `make modular-gc MODULAR_GC=mmtk` then seems to expect a `target/release/librubygc.mmtk.bundle`, which doesn't exist. I briefly had it working but now can't reproduce the working order.
Reproduction steps:
``` shell
brew install gmp jemalloc libffi libyaml openssl@3 readline rust zlib
curl https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-rc1.tar.xz | tar -x
cd ruby-3.4.0-rc1
./configure \
--prefix="$HOME/.rubies/ruby-3.4.0-rc1" \
--with-libyaml-dir="$(brew --prefix libyaml)" \
--with-openssl-dir="$(brew --prefix openssl@3)" \
--with-readline-dir="$(brew --prefix readline)" \
--with-zlib-dir="$(brew --prefix zlib)" \
--with-opt-dir="$(brew --prefix gmp):$(brew --prefix jemalloc)" \
--with-jemalloc \
--with-modular-gc="gc/mmtk/target/release"
cargo build --release --manifest-path=gc/mmtk/Cargo.toml
make -j miniruby modular-gc MODULAR_GC=mmtk
```
I keep getting errors similar to:
```
ruby_modular_gc_init: Shared library /Users/havenwood/src/ruby-3.4.0-rc1/gc/mmtk/target/release/librubygc.mmtk.bundle cannot be opened: dlopen(/Users/havenwood/src/ruby-3.4.0-rc1/gc/mmtk/target/release/librubygc.mmtk.bundle, 0x0009): tried: '/Users/havenwood/src/ruby-3.4.0-rc1/gc/mmtk/target/release/librubygc.mmtk.bundle' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/havenwood/src/ruby-3.4.0-rc1/gc/mmtk/target/release/librubygc.mmtk.bundle' (no such file), '/Users/havenwood/src/ruby-3.4.0-rc1/gc/mmtk/target/release/librubygc.mmtk.bundle' (no such file)
```
The latest nightly Ruby I tried produced the same missing `.bundle` error. I'm very much looking forward to 3.4.0 and the introduction of the new pluggable GC feature! Thank you!
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/