[PATCH] D129242: [clang-repl] Add host exception support check utility flag.

Sunho Kim via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 29 04:42:31 PDT 2022


sunho added a comment.

In D129242#3686713 <https://reviews.llvm.org/D129242#3686713>, @uabelho wrote:

> In D129242#3686610 <https://reviews.llvm.org/D129242#3686610>, @sunho wrote:
>
>> @uabelho Hi, that's a typeinfo symbol of libc++ abi. It's quite weird that __cxa_throw is availble while _ZTIPKc is not. Do you have some special setting regarding libc++ in your environment?
>
> We compile with clang 8 on a RHEL7 machine, but since we then got too old libs we do
>
>   --gcc-toolchain=/proj/bbi_twh/wh_bbi/x86_64-Linux2/bbigcc/1.9.3.0/crosscompiler
>
> since we have newer libs there. This is seen in the cmake command:
>
>   cmake command: CC='/proj/flexasic/app/llvm/8.0/bin/clang -march=corei7 --gcc-toolchain=/proj/bbi_twh/wh_bbi/x86_64-Linux2/bbigcc/1.9.3.0/crosscompiler' CXX='/proj/flexasic/app/llvm/8.0/bin/clang++ -march=corei7 --gcc-toolchain=/proj/bbi_twh/wh_bbi/x86_64-Linux2/bbigcc/1.9.3.0/crosscompiler' LDFLAGS='-Wl,-R/proj/bbi_twh/wh_bbi/x86_64-Linux3/z3/4.8.8-1/lib64' PATH=/proj/flexasic/app/ninja/1.8.2/SLED11-64/bin:$PATH  /app/vbuild/RHEL7-x86_64/cmake/3.16.4/bin/cmake /repo/uabelho/main-github/llvm --debug-trycompile -G Ninja -DCMAKE_MAKE_PROGRAM=/proj/flexasic/app/ninja/1.8.2/SLED11-64/bin/ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS='-Wno-error=unused-command-line-argument' -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_INSTALL_PREFIX=/compiler-clang -DLLVM_APPEND_VC_REV=OFF -DLLVM_CCACHE_DIR=/repo/uabelho/.ccache/ -DLLVM_CCACHE_BUILD=ON -DLLVM_CCACHE_PROGRAM=/app/vbuild/RHEL7-x86_64/ccache/3.2.2/bin/ccache -DLLVM_CCACHE_NOHASHDIR=ON -DLLVM_CCACHE_BASEDIR=/repo -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_WERROR=ON -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;lld' -DLLVM_ENABLE_Z3_SOLVER=ON -DLLVM_Z3_INSTALL_DIR=/proj/bbi_twh/wh_bbi/x86_64-Linux3/z3/4.8.8-1 -DLLVM_ENABLE_LIBPFM=OFF -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_STATIC_LINK_CXX_STDLIB=ON -DCLANG_ENABLE_ARCMT=OFF -DCLANG_TOOLING_BUILD_AST_INTROSPECTION=OFF
>
> Could it be something like that there is a mismatch somewhere so the support checks will use some libs but then the actual libs used when compiling/running is something else?

Thanks for the detailed information. I'm thining it's because of LLVM_STATIC_LINK_CXX_STDLIB=ON. The default method used by ORC for finding external symbol on linux is look up the symbols defined by the current process and dynamic libraries loaded so far using dlsym. Since libstdc++ was statically linked, some of the libstdc++ symbols might not be visible in symbol table. It's still weird that it has successfully found `__cxa_throw` though. (the log you showed says it has found `__cxa_throw`)

I'll try to reproduce the issue by tweaking LLVM_STATIC_LINK_CXX_STDLIB on my local machine and report back.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129242/new/

https://reviews.llvm.org/D129242



More information about the cfe-commits mailing list