Can't add symbols to ../../lib/libLLVMSupport.a when building llvm-6.0.0 using llvm-5.0

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












Here is the information about my system and the compiler I use:



Linux version 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc version 
6.3.0 20170516 (Debian 6.3.0-1
8) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)

clang version 5.0.1-svn325091-1~exp1 (branches/release_50)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin


I have problem with building llvm-6.0.0 with libcxx. I downloaded all of them from llvm download page and put the source code like there:



llvm-6.0
build
llvm-6.0.0
...(other stuff)
tools
clang
projects
libcxx
libcxxabi


And here is the command I used:



#!/bin/bash
#References: https://libcxx.llvm.org/docs/BuildingLibcxx.html
cd build
#The option for llvm starts from line 5, for libcxx starts from line 15
cmake -DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_COMPILER=clang-5.0
-DCMAKE_CXX_COMPILER=clang++-5.0
-DCMAKE_INSTALL_PREFIX=/usr/local/
-DLLVM_INSTALL_BINUTILS_SYMLINKS=True
-DLLVM_INSTALL_CCTOOLS_SYMLINKS=True
-DLLVM_ENABLE_CXX1Y=True
-DLLVM_ENABLE_EH=True
-DLLVM_ENABLE_RTTI=True
-DLLVM_ENABLE_LTO=Thin
-DLIBCXX_ENABLE_ASSERTIONS=False
-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=True
-DLIBCXX_LIBDIR_SUFFIX=/usr/local/lib
-DLIBCXX_BENCHMARK_NATIVE_STDLIB="libstdc++"
-G Unix Makefiles
..
cmake --build .


The cmake gives:



[ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o
[ 0%] Linking CXX static library ../libLLVMDemangle.a
[ 0%] Built target LLVMDemangle
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamError.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamReader.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamWriter.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DebugCounter.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
[ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormatVariadic.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GlobPattern.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/KnownBits.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LowLevelType.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/NativeFormatting.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Parallel.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TarWriter.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TrigramIndex.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
[ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
[ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
[ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
[ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
[ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
[ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/xxhash.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
[ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
[ 2%] Linking CXX static library ../libLLVMSupport.a
[ 2%] Built target LLVMSupport
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
[ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
[ 2%] Linking CXX static library ../libLLVMTableGen.a
[ 2%] Built target LLVMTableGen
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
[ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrDocsEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SDNodeProperties.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
[ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
[ 4%] Built target obj.llvm-tblgen
[ 4%] Linking CXX executable ../../bin/llvm-tblgen
../../lib/libLLVMSupport.a: error adding symbols: Archive has no index; run ranlib to add one
clang: error: linker command failed with exit code 1 (use -v to see invocation)
utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for target 'bin/llvm-tblgen' failed
make[2]: *** [bin/llvm-tblgen] Error 1
CMakeFiles/Makefile2:906: recipe for target 'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2


I tried to fix this problem by:



  1. Use cmake --build . --target clean to remove the built files and run cmake --build . again.


  2. Follow the instruction given above, change directory into lib, and run ranlib libLLVMSupport.a.


But none of these worked: I ran cmake --build . again, and they gave:



[ 0%] Built target LLVMDemangle
[ 2%] Built target LLVMSupport
[ 2%] Built target LLVMTableGen
[ 4%] Built target obj.llvm-tblgen
[ 4%] Linking CXX executable ../../bin/llvm-tblgen
../../lib/libLLVMSupport.a: error adding symbols: Archive has no index;
run ranlib to add one
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for
target 'bin/llvm-tblgen' failed
make[2]: *** [bin/llvm-tblgen] Error 1
CMakeFiles/Makefile2:906: recipe for target
'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2


I checked the timestamp of lib/libLLVMSupport.a in method 2, and found it was not changed, means it was not regenerated by cmake --build ..



How to fix this?







share|improve this question
























    up vote
    0
    down vote

    favorite












    Here is the information about my system and the compiler I use:



    Linux version 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc version 
    6.3.0 20170516 (Debian 6.3.0-1
    8) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)

    clang version 5.0.1-svn325091-1~exp1 (branches/release_50)
    Target: x86_64-pc-linux-gnu
    Thread model: posix
    InstalledDir: /usr/bin


    I have problem with building llvm-6.0.0 with libcxx. I downloaded all of them from llvm download page and put the source code like there:



    llvm-6.0
    build
    llvm-6.0.0
    ...(other stuff)
    tools
    clang
    projects
    libcxx
    libcxxabi


    And here is the command I used:



    #!/bin/bash
    #References: https://libcxx.llvm.org/docs/BuildingLibcxx.html
    cd build
    #The option for llvm starts from line 5, for libcxx starts from line 15
    cmake -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_C_COMPILER=clang-5.0
    -DCMAKE_CXX_COMPILER=clang++-5.0
    -DCMAKE_INSTALL_PREFIX=/usr/local/
    -DLLVM_INSTALL_BINUTILS_SYMLINKS=True
    -DLLVM_INSTALL_CCTOOLS_SYMLINKS=True
    -DLLVM_ENABLE_CXX1Y=True
    -DLLVM_ENABLE_EH=True
    -DLLVM_ENABLE_RTTI=True
    -DLLVM_ENABLE_LTO=Thin
    -DLIBCXX_ENABLE_ASSERTIONS=False
    -DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=True
    -DLIBCXX_LIBDIR_SUFFIX=/usr/local/lib
    -DLIBCXX_BENCHMARK_NATIVE_STDLIB="libstdc++"
    -G Unix Makefiles
    ..
    cmake --build .


    The cmake gives:



    [ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o
    [ 0%] Linking CXX static library ../libLLVMDemangle.a
    [ 0%] Built target LLVMDemangle
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamError.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamReader.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamWriter.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DebugCounter.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
    [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormatVariadic.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GlobPattern.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/KnownBits.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LowLevelType.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/NativeFormatting.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Parallel.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TarWriter.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TrigramIndex.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
    [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
    [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
    [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
    [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
    [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
    [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/xxhash.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
    [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
    [ 2%] Linking CXX static library ../libLLVMSupport.a
    [ 2%] Built target LLVMSupport
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
    [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
    [ 2%] Linking CXX static library ../libLLVMTableGen.a
    [ 2%] Built target LLVMTableGen
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
    [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrDocsEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SDNodeProperties.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
    [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
    [ 4%] Built target obj.llvm-tblgen
    [ 4%] Linking CXX executable ../../bin/llvm-tblgen
    ../../lib/libLLVMSupport.a: error adding symbols: Archive has no index; run ranlib to add one
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for target 'bin/llvm-tblgen' failed
    make[2]: *** [bin/llvm-tblgen] Error 1
    CMakeFiles/Makefile2:906: recipe for target 'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
    make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
    Makefile:149: recipe for target 'all' failed
    make: *** [all] Error 2


    I tried to fix this problem by:



    1. Use cmake --build . --target clean to remove the built files and run cmake --build . again.


    2. Follow the instruction given above, change directory into lib, and run ranlib libLLVMSupport.a.


    But none of these worked: I ran cmake --build . again, and they gave:



    [ 0%] Built target LLVMDemangle
    [ 2%] Built target LLVMSupport
    [ 2%] Built target LLVMTableGen
    [ 4%] Built target obj.llvm-tblgen
    [ 4%] Linking CXX executable ../../bin/llvm-tblgen
    ../../lib/libLLVMSupport.a: error adding symbols: Archive has no index;
    run ranlib to add one
    clang: error: linker command failed with exit code 1 (use -v to see
    invocation)
    utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for
    target 'bin/llvm-tblgen' failed
    make[2]: *** [bin/llvm-tblgen] Error 1
    CMakeFiles/Makefile2:906: recipe for target
    'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
    make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
    Makefile:149: recipe for target 'all' failed
    make: *** [all] Error 2


    I checked the timestamp of lib/libLLVMSupport.a in method 2, and found it was not changed, means it was not regenerated by cmake --build ..



    How to fix this?







    share|improve this question






















      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Here is the information about my system and the compiler I use:



      Linux version 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc version 
      6.3.0 20170516 (Debian 6.3.0-1
      8) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)

      clang version 5.0.1-svn325091-1~exp1 (branches/release_50)
      Target: x86_64-pc-linux-gnu
      Thread model: posix
      InstalledDir: /usr/bin


      I have problem with building llvm-6.0.0 with libcxx. I downloaded all of them from llvm download page and put the source code like there:



      llvm-6.0
      build
      llvm-6.0.0
      ...(other stuff)
      tools
      clang
      projects
      libcxx
      libcxxabi


      And here is the command I used:



      #!/bin/bash
      #References: https://libcxx.llvm.org/docs/BuildingLibcxx.html
      cd build
      #The option for llvm starts from line 5, for libcxx starts from line 15
      cmake -DCMAKE_BUILD_TYPE=Release
      -DCMAKE_C_COMPILER=clang-5.0
      -DCMAKE_CXX_COMPILER=clang++-5.0
      -DCMAKE_INSTALL_PREFIX=/usr/local/
      -DLLVM_INSTALL_BINUTILS_SYMLINKS=True
      -DLLVM_INSTALL_CCTOOLS_SYMLINKS=True
      -DLLVM_ENABLE_CXX1Y=True
      -DLLVM_ENABLE_EH=True
      -DLLVM_ENABLE_RTTI=True
      -DLLVM_ENABLE_LTO=Thin
      -DLIBCXX_ENABLE_ASSERTIONS=False
      -DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=True
      -DLIBCXX_LIBDIR_SUFFIX=/usr/local/lib
      -DLIBCXX_BENCHMARK_NATIVE_STDLIB="libstdc++"
      -G Unix Makefiles
      ..
      cmake --build .


      The cmake gives:



      [ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o
      [ 0%] Linking CXX static library ../libLLVMDemangle.a
      [ 0%] Built target LLVMDemangle
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamError.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamReader.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamWriter.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DebugCounter.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormatVariadic.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GlobPattern.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/KnownBits.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LowLevelType.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/NativeFormatting.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Parallel.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TarWriter.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TrigramIndex.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/xxhash.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
      [ 2%] Linking CXX static library ../libLLVMSupport.a
      [ 2%] Built target LLVMSupport
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
      [ 2%] Linking CXX static library ../libLLVMTableGen.a
      [ 2%] Built target LLVMTableGen
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrDocsEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SDNodeProperties.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
      [ 4%] Built target obj.llvm-tblgen
      [ 4%] Linking CXX executable ../../bin/llvm-tblgen
      ../../lib/libLLVMSupport.a: error adding symbols: Archive has no index; run ranlib to add one
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for target 'bin/llvm-tblgen' failed
      make[2]: *** [bin/llvm-tblgen] Error 1
      CMakeFiles/Makefile2:906: recipe for target 'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
      make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
      Makefile:149: recipe for target 'all' failed
      make: *** [all] Error 2


      I tried to fix this problem by:



      1. Use cmake --build . --target clean to remove the built files and run cmake --build . again.


      2. Follow the instruction given above, change directory into lib, and run ranlib libLLVMSupport.a.


      But none of these worked: I ran cmake --build . again, and they gave:



      [ 0%] Built target LLVMDemangle
      [ 2%] Built target LLVMSupport
      [ 2%] Built target LLVMTableGen
      [ 4%] Built target obj.llvm-tblgen
      [ 4%] Linking CXX executable ../../bin/llvm-tblgen
      ../../lib/libLLVMSupport.a: error adding symbols: Archive has no index;
      run ranlib to add one
      clang: error: linker command failed with exit code 1 (use -v to see
      invocation)
      utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for
      target 'bin/llvm-tblgen' failed
      make[2]: *** [bin/llvm-tblgen] Error 1
      CMakeFiles/Makefile2:906: recipe for target
      'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
      make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
      Makefile:149: recipe for target 'all' failed
      make: *** [all] Error 2


      I checked the timestamp of lib/libLLVMSupport.a in method 2, and found it was not changed, means it was not regenerated by cmake --build ..



      How to fix this?







      share|improve this question












      Here is the information about my system and the compiler I use:



      Linux version 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc version 
      6.3.0 20170516 (Debian 6.3.0-1
      8) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)

      clang version 5.0.1-svn325091-1~exp1 (branches/release_50)
      Target: x86_64-pc-linux-gnu
      Thread model: posix
      InstalledDir: /usr/bin


      I have problem with building llvm-6.0.0 with libcxx. I downloaded all of them from llvm download page and put the source code like there:



      llvm-6.0
      build
      llvm-6.0.0
      ...(other stuff)
      tools
      clang
      projects
      libcxx
      libcxxabi


      And here is the command I used:



      #!/bin/bash
      #References: https://libcxx.llvm.org/docs/BuildingLibcxx.html
      cd build
      #The option for llvm starts from line 5, for libcxx starts from line 15
      cmake -DCMAKE_BUILD_TYPE=Release
      -DCMAKE_C_COMPILER=clang-5.0
      -DCMAKE_CXX_COMPILER=clang++-5.0
      -DCMAKE_INSTALL_PREFIX=/usr/local/
      -DLLVM_INSTALL_BINUTILS_SYMLINKS=True
      -DLLVM_INSTALL_CCTOOLS_SYMLINKS=True
      -DLLVM_ENABLE_CXX1Y=True
      -DLLVM_ENABLE_EH=True
      -DLLVM_ENABLE_RTTI=True
      -DLLVM_ENABLE_LTO=Thin
      -DLIBCXX_ENABLE_ASSERTIONS=False
      -DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=True
      -DLIBCXX_LIBDIR_SUFFIX=/usr/local/lib
      -DLIBCXX_BENCHMARK_NATIVE_STDLIB="libstdc++"
      -G Unix Makefiles
      ..
      cmake --build .


      The cmake gives:



      [ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/ItaniumDemangle.cpp.o
      [ 0%] Linking CXX static library ../libLLVMDemangle.a
      [ 0%] Built target LLVMDemangle
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamError.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamReader.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamWriter.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Chrono.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CodeGenCoverage.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DebugCounter.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
      [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormatVariadic.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GlobPattern.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/KnownBits.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LowLevelType.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/NativeFormatting.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Parallel.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TarWriter.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TrigramIndex.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
      [ 1%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
      [ 2%] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/xxhash.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
      [ 2%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
      [ 2%] Linking CXX static library ../libLLVMSupport.a
      [ 2%] Built target LLVMSupport
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
      [ 2%] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
      [ 2%] Linking CXX static library ../libLLVMTableGen.a
      [ 2%] Built target LLVMTableGen
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenHwModes.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
      [ 2%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/GlobalISelEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InfoByHwMode.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrDocsEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterBankEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SDNodeProperties.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SearchableTableEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Types.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
      [ 4%] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
      [ 4%] Built target obj.llvm-tblgen
      [ 4%] Linking CXX executable ../../bin/llvm-tblgen
      ../../lib/libLLVMSupport.a: error adding symbols: Archive has no index; run ranlib to add one
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for target 'bin/llvm-tblgen' failed
      make[2]: *** [bin/llvm-tblgen] Error 1
      CMakeFiles/Makefile2:906: recipe for target 'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
      make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
      Makefile:149: recipe for target 'all' failed
      make: *** [all] Error 2


      I tried to fix this problem by:



      1. Use cmake --build . --target clean to remove the built files and run cmake --build . again.


      2. Follow the instruction given above, change directory into lib, and run ranlib libLLVMSupport.a.


      But none of these worked: I ran cmake --build . again, and they gave:



      [ 0%] Built target LLVMDemangle
      [ 2%] Built target LLVMSupport
      [ 2%] Built target LLVMTableGen
      [ 4%] Built target obj.llvm-tblgen
      [ 4%] Linking CXX executable ../../bin/llvm-tblgen
      ../../lib/libLLVMSupport.a: error adding symbols: Archive has no index;
      run ranlib to add one
      clang: error: linker command failed with exit code 1 (use -v to see
      invocation)
      utils/TableGen/CMakeFiles/llvm-tblgen.dir/build.make:158: recipe for
      target 'bin/llvm-tblgen' failed
      make[2]: *** [bin/llvm-tblgen] Error 1
      CMakeFiles/Makefile2:906: recipe for target
      'utils/TableGen/CMakeFiles/llvm-tblgen.dir/all' failed
      make[1]: *** [utils/TableGen/CMakeFiles/llvm-tblgen.dir/all] Error 2
      Makefile:149: recipe for target 'all' failed
      make: *** [all] Error 2


      I checked the timestamp of lib/libLLVMSupport.a in method 2, and found it was not changed, means it was not regenerated by cmake --build ..



      How to fix this?









      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 25 at 9:10









      JiaHao Xu

      1013




      1013




















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          0
          down vote













          Why don't you leave the archives as separate files? and then link the application to all the required archive(s).






          share|improve this answer



























            up vote
            0
            down vote



            accepted










            I have finally found out what really caused this error.



            The cmake was using gnu golden linker, and the archieve libLLVMSupport.a was composed of LLVM IR code, no wonder it went wrong.



            After I switched to using ld.lld-5.0, all errors were gone.






            share|improve this answer






















              Your Answer







              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "106"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              convertImagesToLinks: false,
              noModals: false,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );








               

              draft saved


              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f433382%2fcant-add-symbols-to-lib-libllvmsupport-a-when-building-llvm-6-0-0-using-l%23new-answer', 'question_page');

              );

              Post as a guest






























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes








              up vote
              0
              down vote













              Why don't you leave the archives as separate files? and then link the application to all the required archive(s).






              share|improve this answer
























                up vote
                0
                down vote













                Why don't you leave the archives as separate files? and then link the application to all the required archive(s).






                share|improve this answer






















                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote









                  Why don't you leave the archives as separate files? and then link the application to all the required archive(s).






                  share|improve this answer












                  Why don't you leave the archives as separate files? and then link the application to all the required archive(s).







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Mar 25 at 9:50









                  Mumtaz Ahmad

                  62




                  62






















                      up vote
                      0
                      down vote



                      accepted










                      I have finally found out what really caused this error.



                      The cmake was using gnu golden linker, and the archieve libLLVMSupport.a was composed of LLVM IR code, no wonder it went wrong.



                      After I switched to using ld.lld-5.0, all errors were gone.






                      share|improve this answer


























                        up vote
                        0
                        down vote



                        accepted










                        I have finally found out what really caused this error.



                        The cmake was using gnu golden linker, and the archieve libLLVMSupport.a was composed of LLVM IR code, no wonder it went wrong.



                        After I switched to using ld.lld-5.0, all errors were gone.






                        share|improve this answer
























                          up vote
                          0
                          down vote



                          accepted







                          up vote
                          0
                          down vote



                          accepted






                          I have finally found out what really caused this error.



                          The cmake was using gnu golden linker, and the archieve libLLVMSupport.a was composed of LLVM IR code, no wonder it went wrong.



                          After I switched to using ld.lld-5.0, all errors were gone.






                          share|improve this answer














                          I have finally found out what really caused this error.



                          The cmake was using gnu golden linker, and the archieve libLLVMSupport.a was composed of LLVM IR code, no wonder it went wrong.



                          After I switched to using ld.lld-5.0, all errors were gone.







                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Apr 3 at 9:26

























                          answered Apr 3 at 7:48









                          JiaHao Xu

                          1013




                          1013






















                               

                              draft saved


                              draft discarded


























                               


                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f433382%2fcant-add-symbols-to-lib-libllvmsupport-a-when-building-llvm-6-0-0-using-l%23new-answer', 'question_page');

                              );

                              Post as a guest













































































                              Popular posts from this blog

                              Peggy Mitchell

                              Palaiologos

                              The Forum (Inglewood, California)