-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
rustc 1.11.0 arm64 failed to compile debuginfo-gdb/type-names.rs #36348
Comments
Looks like a segmentation fault. Maybe a problem in LLVM? The Rust side doesn't do anything architecture specific, as far as I know. |
We are using not-rust's-fork of LLVM for this, yes. I'll have to investigate further later. |
@infinity0: If it's really the issue @TimNN mentions, is there something you can do about that? |
Yes, I can have it backported to Debian's LLVM no problem. I just need some time to test and check that it does fix the issue. |
OK, I'm fairly sure the patch @TimNN mentioned does not fix the issue, at least not by itself. (I don't have root on the arm64 machine I have access to, so I can't patch the system LLVM, but I set |
I have the build environment and all the build files intact however, so let me know if I can run extra things for a better diagnosis. |
Here's a backtrace:
I am using Debian's LLVM 3.8.1-12 with this patch applied. I ran the following commands to get the above backtrace:
|
I can make the segfault go away (the test compiles) if I comment out the following two lines:
of course the test fails because it's missing the expected output, but perhaps this can help you diagnose the problem. |
Could this be related to #36142? |
Possibly yes. If I read things right, "stdcall" is x86 specific so it shouldn't be present in a cross-platform test, or at least it should be enabled only for a particular platform. So the segfault is just a secondary here; though of course there could be a better error message instead of a segfault. Looking through However after doing a bit more research I'm confused. On the successful Debian arm64 build of 1.10.0 we see:
Neither of these tests changed between 1.10.0 and 1.11.0 so I'm wondering (a) why 1.11.0 doesn't ignore |
On second thoughts, I don't think this is related to #36142. I can make the test pass by further commenting out the test case for
in additional to the other patch above. So arm64 can compile and test |
Minimal test case, fails even on rustc 1.10 (with Debian's LLVM):
However this does seem like a Debian-specific issue; I can't reproduce this with upstream 1.10 or 1.11. |
Continued in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837533. I think in general rust should just remove these "stdcall" tests or move them into a separate test that is only run on the appropriate platforms. |
Ok, it turns out I'm an idiot and actually already dealt with this in #34889. (Though the patch I wrote above allows more of the test to run, instead of ignoring it completely.) #24958 is another example of rust failing in a bad way when encountering inappropriate calling conventions. You can close this bug if you want, or leave it open if you want something specifically to track inappropriate uses of "stdcall" in what should be cross-platform tests. |
Disabling the test on arm64 seems like an acceptable fix for me. Thanks for investigating this! |
Failure here, relevant snippet:
The text was updated successfully, but these errors were encountered: