Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1498946
Summary: | All LLVM 5.0 unit tests fail | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Tilmann Scheller <tschelle> |
Component: | llvm | Assignee: | Tom Stellard <tstellar> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | 28 | CC: | ajax, davejohansen, dmalcolm, ignatenko, jakub, jistone, kyle, petersen, sbergman, scottt.tw, siddharth.kde, tstellar |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-04-05 14:37:52 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Tilmann Scheller
2017-10-05 15:35:12 UTC
Static linking of libstdc++ is done in order to support Steam. Steam and its games ship their own libstdc++ and the dynamic loader will fail to load LLVM, because it is linked against newer versions of the libstdc++ symbols than the libstdc++ bundled with Steam provides. Steam will now default to using system libstdc++ if it is newer than its bundled libstdc++, so games should work fine if we dynamically link libstdc++. However, the steam installer still uses its own bundled versions of libstdc++, so this will still fail if we dynamically link libstdc++. This bug appears to have been reported against 'rawhide' during the Fedora 28 development cycle. Changing version to '28'. Another consequence of that "-Wl,-Bsymbolic -static-libstdc++" is that tools like ASan will report issues in processes that include /usr/lib64/libclangFrontend.so.5 calling into /usr/lib64/libLLVM-5.0.so (e.g., through the use of /usr/lib64/libpocl.so.1). I ran into that when running the test suite of an upstream LibreOffice built with ASan+UBSan, and happened to have pocl installed (which causes some of the tests to call into it if present). ASan intercepts both malloc/free and global operator new/delete, but libLLVM-5.0.so prevents interception of calls to global operator new/delete within its code, so those calls will look to ASan as calls to malloc/free instead. So, e.g., ParseCodeGenArgs in libclangFrontend.so.5 will call the intercepted global operator delete at > #0 0x52bfc8 in operator delete(void*) /data/sbergman/github.com/llvm-project/llvm-project-20170507/compiler-rt/lib/asan/asan_new_delete.cc:149 > #1 0x7fc6ea11ad63 /usr/include/c++/7/ext/new_allocator.h:125 > #2 0x7fc6ea11ad63 /usr/include/c++/7/bits/alloc_traits.h:462 > #3 0x7fc6ea11ad63 /usr/include/c++/7/bits/basic_string.h:226 > #4 0x7fc6ea11ad63 /usr/include/c++/7/bits/basic_string.h:221 > #5 0x7fc6ea11ad63 /usr/include/c++/7/bits/basic_string.h:647 > #6 0x7fc6ea11ad63 /usr/include/llvm/ADT/Triple.h:44 > #7 0x7fc6ea11ad63 in ParseCodeGenArgs /usr/src/debug/clang-5.0.1-3.fc27.x86_64/lib/Frontend/CompilerInvocation.cpp:440 ... on a std::string that libLLVM-5.0.so had allocated through non-intercepted global operator new at > #0 0x4f2bd0 in __interceptor_malloc /data/sbergman/github.com/llvm-project/llvm-project-20170507/compiler-rt/lib/asan/asan_malloc_linux.cc:88 > #1 0x7fc6e5776387 in operator new(unsigned long) (/lib64/libLLVM-5.0.so+0x21c5387) LLVMSymbolizer: error reading file: No such file or directory > #2 0x7ffe06ef85e7 ([stack]+0x145e7) > #3 0x7fc6e4d23305 /usr/include/c++/7/bits/basic_string.h:235 > #4 0x7fc6e4d23305 /usr/include/c++/7/bits/basic_string.h:254 > #5 0x7fc6e4d23305 /usr/include/c++/7/bits/basic_string.h:510 > #6 0x7fc6e4d23305 in void std::_Construct<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, char const*&) /usr/include/c++/7/bits/stl_construct.h:75 > #7 0x7fc6e4d23305 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy<false>::__uninit_copy<char const**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(char const**, char const**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:83 > #8 0x7fc6e4d23305 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::uninitialized_copy<char const**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(char const**, char const**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) /usr/include/c++/7/bits/stl_uninitialized.h:134 > #9 0x7fc6e4d23305 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* std::__uninitialized_copy_a<char const**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const**, char const**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) /usr/include/c++/7/bits/stl_uninitialized.h:289 > #10 0x7fc6e4d23305 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_range_initialize<char const**>(char const**, char const**, std::forward_iterator_tag) /usr/include/c++/7/bits/stl_vector.h:1326 > #11 0x7fc6e4d23305 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_initialize_dispatch<char const**>(char const**, char const**, std::__false_type) /usr/include/c++/7/bits/stl_vector.h:1299 > #12 0x7fc6e4d23305 in std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::vector<char const**, void>(char const**, char const**, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&) /usr/include/c++/7/bits/stl_vector.h:414 > #13 0x7fc6e4d23305 in llvm::opt::ArgList::getAllArgValues[abi:cxx11](llvm::opt::OptSpecifier) const /usr/src/debug/llvm-5.0.1-3.fc27.x86_64/lib/Option/ArgList.cpp:95 ... which causes ASan to report a malloc vs operator delete alloc-dealloc-mismatch. pocl-1.1-2.fc28 lldb-6.0.0-3.fc28 clang-6.0.0-5.fc28 llvm-6.0.0-11.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319 clang-6.0.0-5.fc28, lldb-6.0.0-3.fc28, llvm-6.0.0-11.fc28, mesa-18.0.0-2.fc28.1, pocl-1.1-2.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319 clang-6.0.0-5.fc28 lldb-6.0.0-3.fc28 llvm-6.0.0-11.fc28 mesa-18.0.0-3.fc28 pocl-1.1-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319 clang-6.0.0-5.fc28, lldb-6.0.0-3.fc28, llvm-6.0.0-11.fc28, mesa-18.0.0-3.fc28, pocl-1.1-2.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-02c4091319 clang-6.0.0-5.fc28, lldb-6.0.0-3.fc28, llvm-6.0.0-11.fc28, mesa-18.0.0-3.fc28, pocl-1.1-2.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report. |