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:58 PST 2016


Sorry for the noise, I just forgot to update my clang/tools/extra :-/

On Tue, Nov 22, 2016 at 1:50 PM, Nico Weber <thakis at chromium.org> wrote:

> 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/6b2b26c7/attachment-0001.html>


More information about the cfe-commits mailing list