-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rust YJIT build failure "Segmentation fault" | Debian 12 Bookworm - aarch64 (Raspberry pi 3) #559
Comments
Hi @arnlen. We might need your help to debug this. Are you able to figure out where it is crashing? You should be able to run I'm also wondering if it would work with a different version of |
I gave it a go on my RPi5. (It's not urgent for me to have it running there- but figured I'd give it a shot.) Didn't seem to cooperate with me compiling with the default version. I get this output when running
I assume this is a result of rustc's process since it's in the libyjit.o object. It seems that I'm not sure I quite know where the bug here would be, but I'll continue investigating. (Please let me know if my input isn't helpful here - I don't want to be a pain.) |
No worries, it would be good to get this problem fix, but we may not have the bandwidth to investigate it, so any help and input you can provide is welcome :) I remember there being an issue with builtins that ended up being a problem with the rust toolchain @XrXr @aidenfoxivey any chance you can upgrade your |
@maximecb My rustc seems to be rustc 1.78.0 (9b00956e5 2024-04-29). Should I try running 1.82 instead? |
Ah whoops, 1.82 is tomorrow! I'll try with 1.81 |
Yup! Seems that running with 1.81 solves both installing with 3.3.0 and 3.3.3. warning: this method call resolves to `<&Box<[T]> as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<Box<[T]> as IntoIterator>::into_iter` in Rust 2024
--> ./yjit/src/core.rs:982:49
|
982 | formatter.debug_list().entries(branches.into_iter()).finish()
| ^^^^^^^^^
|
= warning: this changes meaning in Rust 2024
= note: `#[warn(boxed_slice_into_iter)]` on by default
hel
|
982 | formatter.debug_list().entries(branches.iter()).finish()
| ~~~~
help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
|
982 | formatter.debug_list().entries(IntoIterator::into_iter(branches)).finish()
| ++++++++++++++++++++++++ ~ I did notice this too. Is this something I could submit a micro-PR to change? I presume expected behaviour would be to use |
I'm glad that it worked for you! OP should also try with the latest rustc. Looks like rustc is crashing during an LLVM call.
Thanks for thinking about contributing! But we've already fixed that particular warning. |
Context
What happens
When trying to build Ruby from sources (via
rbenv install 3.3.3
) on the latest Raspberry Pi OS (Debian Bookworm port):RUBY_CONFIGURE_OPTS="--disable-yjit"
), it succeeds. ✅What I tried
The followings doesn't resolve the issue:
MAKE_OPTS="-j2"
)3.1.0
,3.2.0
,3.3.0
,3.3.3
My setup
Versions
To reproduce
Logs
Alternative logs
I notice that, when building with the following options, the failure occurs a bit earlier (when compiling
prism/serialize.c
rather than when compilingprism/util/pm_buffer.c
) and the output of the compilation ofprism/regexp.c
is also different:The text was updated successfully, but these errors were encountered: