[all-commits] [llvm/llvm-project] a8f2e2: [clang-repl] Disable building when LLVM_STATIC_LIN...
Sunho Kim via All-commits
all-commits at lists.llvm.org
Sat Jul 30 13:43:13 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: a8f2e24e48fddb3707301c9d24cc50ab778d4fda
https://github.com/llvm/llvm-project/commit/a8f2e24e48fddb3707301c9d24cc50ab778d4fda
Author: Sunho Kim <ksunhokim123 at gmail.com>
Date: 2022-07-31 (Sun, 31 Jul 2022)
Changed paths:
M clang/CMakeLists.txt
M clang/test/CMakeLists.txt
M clang/test/Interpreter/code-undo.cpp
M clang/test/Interpreter/execute-weak.cpp
M clang/test/Interpreter/execute.cpp
R clang/test/Interpreter/global-dtor-win.cpp
M clang/test/Interpreter/global-dtor.cpp
A clang/test/Interpreter/lit.local.cfg
M clang/test/Interpreter/plugins.cpp
M clang/test/Interpreter/simple-exception.cpp
M clang/test/lit.cfg.py
M clang/tools/CMakeLists.txt
M clang/tools/clang-repl/ClangRepl.cpp
M clang/unittests/CMakeLists.txt
M clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp
Log Message:
-----------
[clang-repl] Disable building when LLVM_STATIC_LINK_CXX_STDLIB is ON.
We have seen random symbol not found "__cxa_throw" error in fuschia build bots and out-of-tree users. The understanding have been that they are built without exception support, but it turned out that these platforms have LLVM_STATIC_LINK_CXX_STDLIB ON so that they link libstdc++ to llvm statically. The reason why this is problematic for clang-repl is that by default clang-repl tries to find symbols from symbol table of executable and dynamic libraries loaded by current process. It needs to load another libstdc++, but the platform that had LLVM_STATIC_LINK_CXX_STDLIB turned on is usally those with missing or obsolate shared libstdc++ in the first place -- trying to load it again would be destined to fail eventually with a risk to introuduce mixed libstdc++ versions.
A proper solution that doesn't take a workaround is statically link the same libstdc++ by clang-repl side, but this is not possible with old JIT linker runtimedyld. New just-in-time linker JITLink handles this relatively well, but it's not availalbe in majority of platforms. For now, this patch just disables the building of clang-repl when LLVM_STATIC_LINK_CXX_STDLIB is ON and removes the "__cxa_throw" check in exception unittest as well as reverting previous exception check flag patch.
Reviewed By: v.g.vassilev
Differential Revision: https://reviews.llvm.org/D130788
More information about the All-commits
mailing list