-
Notifications
You must be signed in to change notification settings - Fork 66
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
Illegal instruction in nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.29.0-nightly (866a71325 2018-07-29) #90
Comments
I believe this won't be fixed in the compiler (as apparently the compiler is doing The Right Thing™: |
Yeah I'm hitting this recently as well. The referenced rust ticket says it's because some |
This is because of my abomination that is the I find it unpleasantly surprising that a language marketed toward kernel writers is making it increasingly harder to directly operate on memory. Edit: ~~~I just read #91, and this seems like the only possible fix that doesn't break backwards compatibility.~~~ |
It looks like they've re-opened 52898. This was a breaking change in rustc and contradicts the docs, and I really hope they revert it. |
FYI, Bug still open in |
Looks like #91 fails to build on my system, probably because generating a behemoth function requires more RAM than the 4 GiB on my laptop. This seemed like the only thing that would work. I'm seriously out of ideas unless the rust devs decide to revert this unacceptable regression in the compiler. |
While I'm all for strong defined behaviour, I think this one was rushed. Can you try, er, negotiate at least a "stopgap revert" until a graceful way out is found? |
This is caused by a change in rustc, so I don't know what to do unless they revert that change (which it's looking more likely that they will). #91 reverts |
Coyboy fix published. Lmk if it works (the bug wasn't occurring on my system, so I can't test that). |
2.18.3 fixes it for me.
The undefined behavior is writing a zero to a function pointer, because a function pointer is not allowed to be zero. |
That makes sense, but it seems very odd to me that their solution was |
That's not what an unsafe block means. You still have to follow the same rules, but rustc isn't checking whether you do or not. If LLVM is told a type is not going to be zero, and code explicitly writes a zero to it, it can assume that code is unreachable, and compile it into an abort to reduce code size. |
This is the first time I've read a good explanation. In the thread for the issue in the rust compiler, people just said "undefined behavior" and made no explanation of how it's different from |
Bug fixed in |
Update x11-dl to pickup the fix for x11 startup crash This updates x11-dl to 2.18.3 to get AltF02/x11-rs#90 <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [ ] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [X] These changes fix #21530 (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because it's fixing a startup crash <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21532) <!-- Reviewable:end -->
x11-dl has a bug which causes SIGILL if we compile with release profile. For more info: AltF02/x11-rs#90
Cross-posting from rust-lang
rust-lang/rust#52875 (comment)
Cargo.toml:x11-dl = "2.18.1"
Illegal instruction with Rust nightly
The text was updated successfully, but these errors were encountered: