-
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
Untangle libunwind from libc++abi and compiler-rt #23738
Comments
assigned to @compnerd |
Just to note also here, looks like some libc++ tests like std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp started to fail with libunwind: Program received signal SIGSEGV, Segmentation fault.
This is on Linux x86-64. |
Were those running against libunwind previously? Or is that what is now causing this to show up? |
My builds was using libunwind since forever, and even after libunwind moved to its own toplevel project it was fine. But it seems to be failing for the last 2-3 days or so. |
Hmm.. that at least means that the changes causing the new failures is pretty limited: SVN r236585, SVN r236154. Could you check if reverting either makes those tests pass again? If I get a chance, Ill see if I can test locally. |
Hi Ismail, May you provide more details on your environment, e.g. distribution, compiler toolchain, and etc? I can't reproduce your crash report on Ubuntu 14.04 LTS (x86-64.) Here is my attempt to reproduce the problem: #!/bin/bash -e 0. Setup environment variableexport ROOT="$(pwd)" 1. Checkout the source code:git clone http://llvm.org/git/llvm.git cd "${ROOT}/llvm/tools" 2. Build bootstrap clangcd "${ROOT}" cmake -G Ninja "${ROOT}/llvm" ninja -j${NUM_JOBS} && ninja -j${NUM_JOBS} install 3. Checkout libc++, libc++abi, libunwind, compiler-rtcd "${ROOT}/llvm/projects" cd "${ROOT}/llvm/projects" cd "${ROOT}/llvm/projects" cd "${ROOT}/llvm/projects" 4. Rebuild LLVM/Clang with the bootstrap clangcd "${ROOT}" export PATH="${ROOT}/llvm-bootstrap/bin:${PATH}" cmake -G Ninja "${ROOT}/llvm" ninja -j${NUM_JOBS} && ninja -j${NUM_JOBS} install ./bin/llvm-lit projects/libcxx/test # this should pass all tests |
With r237099 all tests pass as expected again. I'll keep an eye on this and let you know if it fails again. |
The ARM build bot libcxx-libcxxabi-arm-linux has been fixed by: build log: http://lab.llvm.org:8011/builders/libcxx-libcxxabi-arm-linux/builds/419 |
Can we mark this one fixed? |
No. I don't think so. The libc++abi + libgcc build is still broken for ARM. I will fix the problem before the creation of 3.7 release branch. |
Fixed in rL243073. |
Hi Logan, Can we close this, then? |
This issue has been resolved.
|
Sure. I have just closed this issue. Feel free to re-open if I have missed anything.) |
Extended Description
Now that we moved libunwind to its own repository, and have made it compile and run on buildbots around, we need to make sure we get all dependencies correct:
No hard-coded dependencies on any other component. Most relevant are compiler-rt and libc++abi.
No cyclic dependency between all three low-level libraries, with both compiler-rt and libc++abi using libunwind and not each other.
Build systems / CMake files need to be aware of the existence, so libunwind can be used inside LLVM (projects/libunwind) and be used directly by compiler-rt/libc+abi in case CMake options allow for this.
Different systems will have different defaults. For example, it's perfectly valid for GNU systems to rely on libgcc / libgcc_s by default and BSD systems to rely on compiler-rt / libunwind. There should be CMake settings for either to change their behaviour.
All tests must pass in the targets they were passing before, namely x86_64/ARM on linux/darwin.
The text was updated successfully, but these errors were encountered: