-
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
Work around LLVM debuginfo problem in librustc_driver. #49904
Conversation
@bors: r+ |
📌 Commit f1610ae has been approved by |
…lexcrichton Work around LLVM debuginfo problem in librustc_driver. Works around a problem (rust-lang#48910) with global variable debuginfo generation for `rustc_driver::get_trans::LOAD` by applying `#[no_debug]` to it (which just disables debuginfo generation for that variable). This way we can build the compiler with debuginfo again. Since the problem is also present in beta, this workaround might have to be backported. r? @alexcrichton
Yesterday the rollup 49939 failed on
At that point, the PRs involved in the rollup are Later I've reconstructed the rollup by removing all liballoc or metadata-related PRs, and the final list is The difference, that may be the cause of that error, is: - #49904 (Work around LLVM debuginfo problem in librustc_driver.)
- #49396 (Make OnDiskCache thread-safer)
- #49289 (Make --emit=metadata output metadata regardless of link)
- #49884 (core: Remove panics from some `Layout` methods)
- #49850 (core: Inline `From<AllocErr> for CollectionAllocErr`) Here, 49396 and 49289 are already merged, which leaves only 49904, 49884 and 49850 as suspects. Out of which, I think this PR is the strongest candidate since it touches LLVM. @michaelwoerister could you verify if cross-compiling libstd to ARM works fine? |
⌛ Testing commit f1610ae with merge 9e85294de5f524b40b7e56327dbbf765ca29cb24... |
💔 Test failed - status-travis |
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
1 similar comment
Your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
I'll take a look. It might also be a different issue introduced by having a bootstrap compiler that now that uses LLVM 6.0? |
The error happens when cross-compiling using the stage1 compiler, so I doubt this is caused by the bootstrap (stage0) compiler. Though LLVM 6 can be the cause, since the smoke test CI uses LLVM 3.9. This problem might also be ARM-specific. |
FWIW the most recent failure on CI was cross-compiling libstd in stage1 to aarch64-unknown-linux-gnu, which may point it more as a cross-compile thing rather than an ARM thing, but I'd also imagine that the ARM and aarch64 backends probably share a good deal of code. |
I'm still getting the clang abort when compiling with debuginfo on Linux64. |
f1610ae
to
2814928
Compare
I was able to reproduce the error and this version doesn't trigger it anymore. @bors r=alexcrichton |
📌 Commit 2814928 has been approved by |
Work around LLVM debuginfo problem in librustc_driver. Works around a problem (#48910) with global variable debuginfo generation for `rustc_driver::get_trans::LOAD` by applying `#[no_debug]` to it (which just disables debuginfo generation for that variable). This way we can build the compiler with debuginfo again. Since the problem is also present in beta, this workaround might have to be backported. r? @alexcrichton
☀️ Test successful - status-appveyor, status-travis |
… r=alexcrichton Backport of rust-lang#49904 See rust-lang#49904.
@michaelwoerister I'm getting that same error on https://travis-ci.org/rust-lang-nursery/stdsimd/jobs/368892648, what'd you end up needing to do to fix it? |
In my case it was that we were not producing debuginfo for drop-glue and shims anymore. Then I changed the last commit (2814928) and the error went away. |
@michaelwoerister: I just updated and I'm still seeing this error :( |
@nnethercote The fix merged into the current beta branch. @rust-lang/release, is the bootstrapping compiler always an up-to-date beta? |
Aha! That would explain it. My stage0 compiler is "1.26.0-beta.1 (18aaa1d 2018-04-03)", which is too old to have this fix. |
Ah yes the bootstrap compiler does not automatically update, but a PR is more than welcome to tweak src/stage0.txt! |
@alexcrichton, your wish is my command: #50222 |
Works around a problem (#48910) with global variable debuginfo generation for
rustc_driver::get_trans::LOAD
by applying#[no_debug]
to it (which just disables debuginfo generation for that variable). This way we can build the compiler with debuginfo again.Since the problem is also present in beta, this workaround might have to be backported.
r? @alexcrichton