[libcxx-commits] [PATCH] D88454: [CMake] Use -isystem flag to access libc++ headers

Bjorn Pettersson via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Oct 2 04:52:43 PDT 2020


bjope added a comment.

In D88454#2308086 <https://reviews.llvm.org/D88454#2308086>, @phosek wrote:

> In D88454#2307806 <https://reviews.llvm.org/D88454#2307806>, @uabelho wrote:
>
>> Hi!
>> I don't understand why, but with this commit I start seeing several warnings like this when compiling builtins:
>>
>>   /data/repo/master/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h:45:7: error: '__sanitizer::FlagHandler<bool>' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
>>   class FlagHandler : public FlagHandlerBase {
>>         ^
>>   /data/repo/master/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h:71:13: note: in instantiation of template class '__sanitizer::FlagHandler<bool>' requested here
>>   inline bool FlagHandler<bool>::Parse(const char *value) {
>>               ^
>
> That's a bit surprising. What's your build configuration? Do you use runtimes build? I haven't managed to reproduce it locally so far.

Sorry if there are some local paths in there, but this is our cmake command (answering for @uabelho ):

  CC='/proj/flexasic/app/llvm/8.0/bin/clang -march=corei7' CXX='/proj/flexasic/app/llvm/8.0/bin/clang++ -march=corei7' LDFLAGS='-L/proj/flexasic/app/llvm/8.0/lib64 -Wl,-R/proj/flexasic/app/llvm/8.0/lib64:/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/RHEL6-x86_64/cmake/3.16.4/bin/cmake /repo/uabbpet/llvm-upstream/llvm --debug-trycompile -G Ninja -DCMAKE_MAKE_PROGRAM=/proj/flexasic/app/ninja/1.8.2/SLED11-64/bin/ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_INSTALL_PREFIX=/compiler-clang -DLLVM_APPEND_VC_REV=OFF -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_WERROR=ON -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra' -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON -DLLVM_BUILTIN_TARGETS=default -DLLVM_ENABLE_RUNTIMES=all -DRUNTIMES_x86_64-unknown-linux-gnu_SANITIZER_USE_STATIC_LLVM_UNWINDER=ON -DRUNTIMES_x86_64-unknown-linux-gnu_SANITIZER_USE_STATIC_CXX_ABI=ON -DRUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_USE_BUILTINS_LIBRARY=ON -DRUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_CAN_EXECUTE_TESTS=OFF -DRUNTIMES_x86_64-unknown-linux-gnu_LIBCXX_HAS_ATOMIC_LIB=0 -DLLVM_RUNTIME_TARGETS='x86_64-unknown-linux-gnu' -DRUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_XRAY=OFF -DLLVM_ENABLE_LIBPFM=OFF

When it gets to the runtime build I start seeing some diffs in the config output, e.g. these used to be sucess, now we get "not found" and "Failed":

  ...
  -- Looking for fopen in c - not found
  -- Found compiler-rt builtins library: /repo/uabbpet/llvm-upstream/llvm/build-all-builtins/lib/clang/12.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
  -- Performing Test COMPILER_RT_HAS_NODEFAULTLIBS_FLAG
  -- Performing Test COMPILER_RT_HAS_NODEFAULTLIBS_FLAG - Success
  -- Performing Test COMPILER_RT_HAS_FFREESTANDING_FLAG
  -- Performing Test COMPILER_RT_HAS_FFREESTANDING_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_STD_C11_FLAG
  -- Performing Test COMPILER_RT_HAS_STD_C11_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
  -- Performing Test COMPILER_RT_HAS_FPIC_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FPIE_FLAG
  -- Performing Test COMPILER_RT_HAS_FPIE_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FNO_BUILTIN_FLAG
  -- Performing Test COMPILER_RT_HAS_FNO_BUILTIN_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG
  -- Performing Test COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG
  -- Performing Test COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FUNWIND_TABLES_FLAG
  -- Performing Test COMPILER_RT_HAS_FUNWIND_TABLES_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG
  -- Performing Test COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG - Failed
  -- Performing Test COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG
  -- Performing Test COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG - Failed
  ...

Maybe that is expected and unrelated.
Also, the warnings we get now seem correct afaict (those structs have virtual functions but non-virtual dtor), even though it feels strange that they popped up when mergine this patch.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88454



More information about the libcxx-commits mailing list