From: "shan (Shannon Skipper) via ruby-core" Date: 2024-12-19T18:59:17+00:00 Subject: [ruby-core:120332] [Ruby master Bug#20961] MMTk build on macOS missing librubygc.mmtk.bundle Issue #20961 has been updated by shan (Shannon Skipper). peterzhu2118 (Peter Zhu) wrote in #note-6: > Was the `RUBY_GC_LIBRARY` environment variable set when you ran `make modular-gc MODULAR_GC=mmtk`? The `make modular-gc` target uses Ruby to build the modular GC and it seems that the Ruby is trying to use the GC before it has been built. I had exported `CFLAGS` with make settings as part of a successful previous install. Now it makes sense why it worked for me once and I couldn't reproduce my initial result. ���� I really appreciate you pointing me in the right direction. The issue was just my misunderstanding of steps paired with bumbling env vars. I think this issue can be closed. Thank you and sorry for the noise. ---------------------------------------- Bug #20961: MMTk build on macOS missing librubygc.mmtk.bundle https://bugs.ruby-lang.org/issues/20961#change-111106 * 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/