fpetrogalli added a comment.

Ah - there you go. Without a proper chained dependency of LLVMTargetParser -> 
clangBasic we end up with failures if clangBasic is compiled before 
LLVMTargetParser is (even on non stand-alone builds). 
https://lab.llvm.org/buildbot/#/builders/193/builds/25362 :

  ccache /usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE 
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-I/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.build/tools/clang/lib/Basic
 
-I/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.src/clang/lib/Basic
 -I/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.src/clang/include 
-I/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.build/tools/clang/include
 -I/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.build/include 
-I/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.src/llvm/include 
-fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time 
-Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual 
-Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough 
-Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move 
-Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor 
-Wsuggest-override -Wno-comment -Wno-misleading-indentation -fdiagnostics-color 
-ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual 
-fno-strict-aliasing -O3 -DNDEBUG  -fno-exceptions -fno-rtti -UNDEBUG 
-std=c++17 -MD -MT 
tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/RISCV.cpp.o -MF 
tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/RISCV.cpp.o.d -o 
tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Targets/RISCV.cpp.o -c 
/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.src/clang/lib/Basic/Targets/RISCV.cpp
  In file included from 
/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.src/clang/lib/Basic/Targets/RISCV.cpp:19:
  
/home/omp-vega20-0/bbot/openmp-offload-amdgpu-runtime/llvm.src/llvm/include/llvm/TargetParser/RISCVTargetParser.h:29:10:
 fatal error: llvm/TargetParser/RISCVTargetParserDef.inc: No such file or 
directory
     29 | #include "llvm/TargetParser/RISCVTargetParserDef.inc"
        |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  compilation terminated.
  2.225 [3029/31/825] Building CXX object 
tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/Version.cpp.o
  2.524 [3029/30/826] Building RISCVTargetParserDef.inc...

I'll revert D141581 <https://reviews.llvm.org/D141581>, as it has chance to 
fail more bots than the original code.

FWIW, I am out of options. We need to make sure that LLVMTargetParser (or just 
RISCVTargetParserTablegen) are built - or better, the header file 
`llvm/include/llvm/TargetParser/RISCVTargetParser.h` is fully available with 
its `.inc` inclusion _before_ clangBasic and clangDriver are compiled.

This patch shows that just specifying the dependency of TargetParser in 
LLVM_LINK_COMPONENTS is not enough: we need to specify in the DEPENDS on 
clangDriver and clangBasic the tablegen target or LLVMTargetParser itself.

What I do not understand is why adding `DEPENDS LLVMTargetParser` (which seems 
to fix both stand-alone and not) to the clang libraries is not acceptable.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D141581

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to