r287229 - Link include-fixer into libclang if clang-tools-extra is checked out.

Nico Weber via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 22 10:50:08 PST 2016


I just did a fresh build with `cmake -GNinja ../llvm-rw/
-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON`. `ninja
check-clang` failed with:

FAILED: lib/libclang.so.4.0
: && /usr/bin/c++  -fPIC -fPIC -fvisibility-inlines-hidden -Wall -W
-Wno-unused-parameter -Wwrite-strings -Wcast-qual
-Wno-missing-field-initializers -pedantic -Wno-long-long
-Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -std=c++11
-ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual
-fno-strict-aliasing -O3  -Wl,-z,defs
-Wl,-rpath-link,/usr/local/google/home/thakis/src/llvm-build/./lib  -Wl,-O3
-Wl,--gc-sections
 -Wl,--version-script,/usr/local/google/home/thakis/src/llvm-build/tools/clang/tools/libclang/libclang.exports
-shared -Wl,-soname,libclang.so.40 -o lib/libclang.so.4.0
tools/clang/tools/libclang/CMakeFiles/libclang.dir/ARCMigrate.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/BuildSystem.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCXX.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexDiagnostic.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCursor.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXIndexDataConsumer.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCompilationDatabase.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXLoadedDiagnostic.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXType.cpp.o
tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
 lib/libclangAST.a lib/libclangBasic.a lib/libclangFrontend.a
lib/libclangIndex.a lib/libclangLex.a lib/libclangSema.a
lib/libclangTooling.a lib/libclangARCMigrate.a lib/libclangTidyPlugin.a
-lclangIncludeFixerPlugin -ldl lib/libLLVMAArch64CodeGen.a
lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64AsmParser.a
lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Info.a
lib/libLLVMAArch64Disassembler.a lib/libLLVMAMDGPUCodeGen.a
lib/libLLVMAMDGPUAsmPrinter.a lib/libLLVMAMDGPUAsmParser.a
lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUInfo.a
lib/libLLVMAMDGPUDisassembler.a lib/libLLVMARMCodeGen.a
lib/libLLVMARMAsmPrinter.a lib/libLLVMARMAsmParser.a lib/libLLVMARMDesc.a
lib/libLLVMARMInfo.a lib/libLLVMARMDisassembler.a lib/libLLVMBPFCodeGen.a
lib/libLLVMBPFAsmPrinter.a lib/libLLVMBPFDesc.a lib/libLLVMBPFInfo.a
lib/libLLVMBPFDisassembler.a lib/libLLVMHexagonCodeGen.a
lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDesc.a
lib/libLLVMHexagonInfo.a lib/libLLVMHexagonDisassembler.a
lib/libLLVMLanaiCodeGen.a lib/libLLVMLanaiAsmParser.a
lib/libLLVMLanaiDesc.a lib/libLLVMLanaiInfo.a
lib/libLLVMLanaiDisassembler.a lib/libLLVMMipsCodeGen.a
lib/libLLVMMipsAsmPrinter.a lib/libLLVMMipsAsmParser.a
lib/libLLVMMipsDesc.a lib/libLLVMMipsInfo.a lib/libLLVMMipsDisassembler.a
lib/libLLVMMSP430CodeGen.a lib/libLLVMMSP430AsmPrinter.a
lib/libLLVMMSP430Desc.a lib/libLLVMMSP430Info.a lib/libLLVMNVPTXCodeGen.a
lib/libLLVMNVPTXAsmPrinter.a lib/libLLVMNVPTXDesc.a lib/libLLVMNVPTXInfo.a
lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmPrinter.a
lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCDesc.a
lib/libLLVMPowerPCInfo.a lib/libLLVMPowerPCDisassembler.a
lib/libLLVMRISCVCodeGen.a lib/libLLVMRISCVDesc.a lib/libLLVMRISCVInfo.a
lib/libLLVMSparcCodeGen.a lib/libLLVMSparcAsmPrinter.a
lib/libLLVMSparcAsmParser.a lib/libLLVMSparcDesc.a lib/libLLVMSparcInfo.a
lib/libLLVMSparcDisassembler.a lib/libLLVMSystemZCodeGen.a
lib/libLLVMSystemZAsmPrinter.a lib/libLLVMSystemZAsmParser.a
lib/libLLVMSystemZDesc.a lib/libLLVMSystemZInfo.a
lib/libLLVMSystemZDisassembler.a lib/libLLVMX86CodeGen.a
lib/libLLVMX86AsmPrinter.a lib/libLLVMX86AsmParser.a lib/libLLVMX86Desc.a
lib/libLLVMX86Info.a lib/libLLVMX86Disassembler.a lib/libLLVMXCoreCodeGen.a
lib/libLLVMXCoreAsmPrinter.a lib/libLLVMXCoreDesc.a lib/libLLVMXCoreInfo.a
lib/libLLVMXCoreDisassembler.a lib/libLLVMCore.a lib/libLLVMSupport.a
lib/libclangTidyBoostModule.a lib/libclangTidyCERTModule.a
lib/libclangTidyCppCoreGuidelinesModule.a lib/libclangTidyGoogleModule.a
lib/libclangTidyLLVMModule.a lib/libclangTidyMiscModule.a
lib/libclangTidyModernizeModule.a lib/libclangTidyMPIModule.a
lib/libclangTidyPerformanceModule.a lib/libclangTidyReadabilityModule.a
lib/libclangTidyUtils.a lib/libclangTidy.a lib/libclangTooling.a
lib/libclangFormat.a lib/libclangToolingCore.a
lib/libclangStaticAnalyzerFrontend.a lib/libclangFrontend.a
lib/libclangDriver.a lib/libclangParse.a lib/libclangSerialization.a
lib/libclangSema.a lib/libclangEdit.a lib/libLLVMOption.a
lib/libclangStaticAnalyzerCheckers.a lib/libclangASTMatchers.a
lib/libclangStaticAnalyzerCore.a lib/libclangRewrite.a
lib/libclangAnalysis.a lib/libclangAST.a lib/libclangLex.a
lib/libclangBasic.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64AsmPrinter.a
lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMipo.a
lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMLinker.a
lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUAsmPrinter.a
lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMDesc.a
lib/libLLVMARMAsmPrinter.a lib/libLLVMARMInfo.a lib/libLLVMBPFAsmPrinter.a
lib/libLLVMBPFInfo.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a
lib/libLLVMLanaiDesc.a lib/libLLVMLanaiInstPrinter.a lib/libLLVMLanaiInfo.a
lib/libLLVMMipsAsmPrinter.a lib/libLLVMMipsInfo.a
lib/libLLVMMSP430AsmPrinter.a lib/libLLVMNVPTXAsmPrinter.a
lib/libLLVMVectorize.a lib/libLLVMPowerPCAsmPrinter.a
lib/libLLVMPowerPCInfo.a lib/libLLVMSparcAsmPrinter.a
lib/libLLVMSparcInfo.a lib/libLLVMSystemZDesc.a
lib/libLLVMSystemZAsmPrinter.a lib/libLLVMSystemZInfo.a
lib/libLLVMGlobalISel.a lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Utils.a
lib/libLLVMX86Info.a lib/libLLVMXCoreAsmPrinter.a lib/libLLVMAsmPrinter.a
lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a
lib/libLLVMSelectionDAG.a lib/libLLVMCodeGen.a lib/libLLVMScalarOpts.a
lib/libLLVMInstCombine.a lib/libLLVMBitWriter.a
lib/libLLVMInstrumentation.a lib/libLLVMTarget.a
lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a
lib/libLLVMObject.a lib/libLLVMBitReader.a lib/libLLVMCore.a
lib/libLLVMMCParser.a lib/libLLVMXCoreInfo.a lib/libLLVMMCDisassembler.a
lib/libLLVMMC.a lib/libLLVMSupport.a -lrt -ldl -ltinfo -lpthread -lz -lm
lib/libLLVMDemangle.a -Wl,-rpath,"\$ORIGIN/../lib" && :
/usr/bin/ld: cannot find -lclangIncludeFixerPlugin
collect2: error: ld returned 1 exit status

I guess libclang.so target is missing a dependency on
clangIncludeFixerPlugin?


On Thu, Nov 17, 2016 at 10:22 AM, Benjamin Kramer via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: d0k
> Date: Thu Nov 17 09:22:36 2016
> New Revision: 287229
>
> URL: http://llvm.org/viewvc/llvm-project?rev=287229&view=rev
> Log:
> Link include-fixer into libclang if clang-tools-extra is checked out.
>
> include-fixer only slightly bloats the size of libclang, but since
> libclang has no explicit plugin mechanism it's the only way of getting
> this to work. Clang-tidy is already there and so far there weren't many
> complaints ;)
>
> This is designed to be easy to remove again if libclang ever grows
> proper plugin support.
>
> Modified:
>     cfe/trunk/tools/libclang/CIndex.cpp
>     cfe/trunk/tools/libclang/CMakeLists.txt
>
> Modified: cfe/trunk/tools/libclang/CIndex.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/
> libclang/CIndex.cpp?rev=287229&r1=287228&r2=287229&view=diff
> ============================================================
> ==================
> --- cfe/trunk/tools/libclang/CIndex.cpp (original)
> +++ cfe/trunk/tools/libclang/CIndex.cpp Thu Nov 17 09:22:36 2016
> @@ -8120,4 +8120,10 @@ cxindex::Logger::~Logger() {
>  extern volatile int ClangTidyPluginAnchorSource;
>  static int LLVM_ATTRIBUTE_UNUSED ClangTidyPluginAnchorDestination =
>      ClangTidyPluginAnchorSource;
> +
> +// This anchor is used to force the linker to link the clang-include-fixer
> +// plugin.
> +extern volatile int ClangIncludeFixerPluginAnchorSource;
> +static int LLVM_ATTRIBUTE_UNUSED ClangIncludeFixerPluginAnchorDestination
> =
> +    ClangIncludeFixerPluginAnchorSource;
>  #endif
>
> Modified: cfe/trunk/tools/libclang/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/
> libclang/CMakeLists.txt?rev=287229&r1=287228&r2=287229&view=diff
> ============================================================
> ==================
> --- cfe/trunk/tools/libclang/CMakeLists.txt (original)
> +++ cfe/trunk/tools/libclang/CMakeLists.txt Thu Nov 17 09:22:36 2016
> @@ -50,6 +50,7 @@ endif ()
>  if (TARGET clangTidyPlugin)
>    add_definitions(-DCLANG_TOOL_EXTRA_BUILD)
>    list(APPEND LIBS clangTidyPlugin)
> +  list(APPEND LIBS clangIncludeFixerPlugin)
>  endif ()
>
>  find_library(DL_LIBRARY_PATH dl)
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161122/c29cade7/attachment.html>


More information about the cfe-commits mailing list