ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: "shan (Shannon Skipper) via ruby-core" <ruby-core@ml.ruby-lang.org>
To: ruby-core@ml.ruby-lang.org
Cc: "shan (Shannon Skipper)" <noreply@ruby-lang.org>
Subject: [ruby-core:120309] [Ruby master Bug#20961] MMTk build on macOS missing librubygc.mmtk.bundle
Date: Thu, 19 Dec 2024 01:01:22 +0000 (UTC)	[thread overview]
Message-ID: <redmine.journal-111075.20241219010122.6603@ruby-lang.org> (raw)
In-Reply-To: <redmine.issue-20961.20241217232135.6603@ruby-lang.org>

Issue #20961 has been updated by shan (Shannon Skipper).


peterzhu2118 (Peter Zhu) wrote in #note-4:
> 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.

You're right, I was just confused. I thought the option was to point to an alternative path to MMTk itself, and was curious why the default wasn't set to the one that ships with Ruby. It makes sense as you explain it in this thread and the new documentation. Thank you!

I do seem to run into a very similar error pointing the `--with-modular-gc=` option to the absolute path of an empty directory. The following was output from an attempt with a `--with-modular-gc="/Users/havenwood/mmtk"` flag `./configure`.

``` shell
❯ make modular-gc MODULAR_GC=mmtk
ruby_modular_gc_init: Shared library /Users/havenwood/mmtk/librubygc.mmtk.bundle cannot be opened: dlopen(/Users/havenwood/mmtk/librubygc.mmtk.bundle, 0x0009): tried: '/Users/havenwood/mmtk/librubygc.mmtk.bundle' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/havenwood/mmtk/librubygc.mmtk.bundle' (no such file), '/Users/havenwood/mmtk/librubygc.mmtk.bundle' (no such file)
make: *** [modular-gc] Error 1
```


----------------------------------------
Bug #20961: MMTk build on macOS missing librubygc.mmtk.bundle
https://bugs.ruby-lang.org/issues/20961#change-111075

* 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/

  parent reply	other threads:[~2024-12-19  1:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-17 23:21 [ruby-core:120283] " shan (Shannon Skipper) via ruby-core
2024-12-18  0:40 ` [ruby-core:120285] " nobu (Nobuyoshi Nakada) via ruby-core
2024-12-18  1:07 ` [ruby-core:120286] " nobu (Nobuyoshi Nakada) via ruby-core
2024-12-18  3:20 ` [ruby-core:120287] " peterzhu2118 (Peter Zhu) via ruby-core
2024-12-18  3:25 ` [ruby-core:120288] " peterzhu2118 (Peter Zhu) via ruby-core
2024-12-19  1:01 ` shan (Shannon Skipper) via ruby-core [this message]
2024-12-19 18:26 ` [ruby-core:120331] " peterzhu2118 (Peter Zhu) via ruby-core
2024-12-19 18:59 ` [ruby-core:120332] " shan (Shannon Skipper) via ruby-core

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=redmine.journal-111075.20241219010122.6603@ruby-lang.org \
    --to=ruby-core@ml.ruby-lang.org \
    --cc=noreply@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).