-
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
1.17.0 powerpc64le: "LLVM ERROR: Undefined temporary symbol" after disabling optimisation #42476
Comments
The error came during stage0, so that's running Debian's local rustc-1.16. Do you have a way to try this build using the upstream binaries for stage0? (just for comparison) |
Good idea, I'll try that. Yes, we have something called "build profiles" in Debian and for the rustc package I just have to set an envvar to make it download them. |
Yeah, it also happens when using upstream 1.16 to bootstrap. Unfortunately I'm having trouble getting a backtrace, all threads exit normally after LLVM emits that error message and I don't know how to set the correct breakpoint. :(
|
I think you'll need to |
OK, that worked. I had to revert back to using Debian's rustc 1.16 because it was easier for me to find the debugging symbols for it and LLVM:
For a full source listing see here. |
I'm not familiar at all with LLVM, so it will be a while before I get around to investigating this further, but feel free to give me tips etc as I still have the gdb session open and can run things quickly. Also here are specific instructions for reproducing it, for anyone else that wants to try it on Debian. Install debugging symbols, download source code, start the build:
When the build (of 1.17, from Debian experimental) gets to the failure, it will say:
If the build fails before you get a chance to notice this, run
to return to the "Running" part quickly. At this point, find its pid with
gives you the envvars you'll need to replicate. Put all of this into a shell script:
then create
so that gdb can find the source files. Then run the script to easily reproduce the problem. (I can also give alternative instructions for reproducing this when cross-compiling from amd64 to ppc64el, just ask.) |
I don't have any further tips about debugging the issue at the moment. But just for reproducing the environment more easily, there's an |
It looks like this is caused by me working around #39015 in Debian by disabling optimization on ppc64el. However, it's also reproducible for rust's own release builds of 1.17.0:
|
Does this still occur with LLVM 4.0/1.19.0? |
Hmm, this looks like it's related to #58516 perhaps? |
Build log: https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-1&stamp=1495038619&raw=0 - but it also happens when I try to cross-compile from amd64 to ppc64el.
The differences between Debian and Rust LLVM are here but I couldn't see anything relevant to powerpc64le.
The text was updated successfully, but these errors were encountered: