From: "peterzhu2118 (Peter Zhu) via ruby-core" Date: 2024-12-18T03:25:18+00:00 Subject: [ruby-core:120288] [Ruby master Bug#20961] MMTk build on macOS missing librubygc.mmtk.bundle Issue #20961 has been updated by peterzhu2118 (Peter Zhu). Thank you for trying this feature out. I think you're confused about how the configuration works, and that's our bad, we never documented anything. The `--with-modular-gc` flag is used to specify a directory that the built GC library will be placed into, and it uses a different directory for the intermediate build artifacts (you don't need to specify this directory). It seems like you're trying to specify the Rust build directory for it? I started [working on a `gc/README.md` document](https://github.com/ruby/ruby/pull/12379). It's far from complete, but I wrote a "building guide" section which may help you in building this feature. Please let me know if you still run into issues. ---------------------------------------- Bug #20961: MMTk build on macOS missing librubygc.mmtk.bundle https://bugs.ruby-lang.org/issues/20961#change-111053 * 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/