What linker are you using and on what OS? I’m looking at this now, and will revert if I can’t find a solution.
-Chris > On Feb 4, 2016, at 6:38 PM, Richard Smith <rich...@metafoo.co.uk> wrote: > > This is causing my links to fail with: > > FAILED: : && /usr/local/google/home/richardsmith/bin/clang++ > -fcolor-diagnostics -std=c++11 -stdlib=libc++ -fPIC > -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings > -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long > -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor > -std=c++11 -fcolor-diagnostics -fno-common -Woverloaded-virtual > -Wno-nested-anon-types -g -Wl,-allow-shlib-undefined -Wl,--export-dynamic > tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o > tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o > tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o -o > bin/clang-3.8 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/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/libLLVMCppBackendCodeGen.a > lib/libLLVMCppBackendInfo.a lib/libLLVMHexagonCodeGen.a > lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDesc.a > lib/libLLVMHexagonInfo.a lib/libLLVMHexagonDisassembler.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/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/libLLVMAnalysis.a > lib/libLLVMCodeGen.a lib/libLLVMCore.a lib/libLLVMipo.a > lib/libLLVMInstCombine.a lib/libLLVMInstrumentation.a lib/libLLVMMC.a > lib/libLLVMMCParser.a lib/libLLVMObjCARCOpts.a lib/libLLVMOption.a > lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTransformUtils.a > lib/libLLVMVectorize.a lib/libclangBasic.a lib/libclangCodeGen.a > lib/libclangDriver.a lib/libclangFrontend.a lib/libclangFrontendTool.a > -Wl,-order_file,/usr/local/google/home/richardsmith/clang-8/build/tools/clang/clang.order > lib/libLLVMAArch64Desc.a lib/libLLVMAArch64AsmPrinter.a > lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a > lib/libLLVMAMDGPUAsmPrinter.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMDesc.a > lib/libLLVMARMAsmPrinter.a lib/libLLVMARMInfo.a lib/libLLVMBPFAsmPrinter.a > lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a lib/libLLVMMipsAsmPrinter.a > lib/libLLVMMipsInfo.a lib/libLLVMMSP430AsmPrinter.a > lib/libLLVMNVPTXAsmPrinter.a lib/libLLVMPowerPCAsmPrinter.a > lib/libLLVMPowerPCInfo.a lib/libLLVMSparcAsmPrinter.a lib/libLLVMSparcInfo.a > lib/libLLVMSystemZDesc.a lib/libLLVMSystemZAsmPrinter.a > lib/libLLVMSystemZInfo.a lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Utils.a > lib/libLLVMX86Info.a lib/libLLVMXCoreAsmPrinter.a lib/libLLVMAsmPrinter.a > lib/libLLVMDebugInfoCodeView.a lib/libLLVMSelectionDAG.a lib/libLLVMCodeGen.a > lib/libLLVMXCoreInfo.a lib/libLLVMMCDisassembler.a lib/libclangCodeGen.a > lib/libLLVMipo.a lib/libLLVMVectorize.a lib/libLLVMInstrumentation.a > lib/libLLVMObjCARCOpts.a lib/libLLVMScalarOpts.a lib/libLLVMInstCombine.a > lib/libLLVMTarget.a lib/libLLVMBitWriter.a lib/libLLVMIRReader.a > lib/libLLVMAsmParser.a lib/libLLVMLinker.a lib/libLLVMTransformUtils.a > lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMObject.a > lib/libclangRewriteFrontend.a lib/libclangARCMigrate.a > lib/libclangStaticAnalyzerFrontend.a lib/libclangFrontend.a > lib/libclangDriver.a lib/libLLVMOption.a lib/libclangParse.a > lib/libLLVMMCParser.a lib/libclangSerialization.a lib/libLLVMBitReader.a > lib/libclangSema.a lib/libclangEdit.a lib/libclangStaticAnalyzerCheckers.a > lib/libclangStaticAnalyzerCore.a lib/libclangAnalysis.a lib/libclangAST.a > lib/libclangRewrite.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMCore.a > lib/libLLVMMC.a lib/libLLVMSupport.a -lrt -ldl -ltinfo -lpthread -lz -lm > -Wl,-rpath,"\$ORIGIN/../lib" && : > /usr/local/google/home/richardsmith/clang-8/build/tools/clang/clang.order: > file not recognized: File truncated > clang-3.8: error: linker command failed with exit code 1 (use -v to see > invocation) > > The generated clang.order file is empty. Please fix or revert! > > On Thu, Feb 4, 2016 at 5:22 PM, Chris Bieneman via cfe-commits > <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: > Author: cbieneman > Date: Thu Feb 4 19:22:03 2016 > New Revision: 259862 > > URL: http://llvm.org/viewvc/llvm-project?rev=259862&view=rev > <http://llvm.org/viewvc/llvm-project?rev=259862&view=rev> > Log: > [CMake] Improve the clang order-file generation workflow > > Summary: > With this change generating clang order files using dtrace uses the following > workflow: > > cmake <whatever options you want> > > ninja generate-order-file > > ninja clang > > This patch works by setting a default path to the order file (which can be > overridden by the user). If the order file doesn't exist during configuration > CMake will create an empty one. > > CMake then ties up the dependencies between the clang link job and the order > file, and generate-order-file overwrites CLANG_ORDER_FILE with the new order > file. > > Reviewers: bogner > > Subscribers: cfe-commits > > Differential Revision: http://reviews.llvm.org/D16896 > <http://reviews.llvm.org/D16896> > > Modified: > cfe/trunk/CMakeLists.txt > cfe/trunk/tools/driver/CMakeLists.txt > cfe/trunk/utils/perf-training/CMakeLists.txt > > Modified: cfe/trunk/CMakeLists.txt > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=259862&r1=259861&r2=259862&view=diff > > <http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=259862&r1=259861&r2=259862&view=diff> > ============================================================================== > --- cfe/trunk/CMakeLists.txt (original) > +++ cfe/trunk/CMakeLists.txt Thu Feb 4 19:22:03 2016 > @@ -586,9 +586,19 @@ if( CLANG_INCLUDE_DOCS ) > add_subdirectory(docs) > endif() > > -set(CLANG_ORDER_FILE "" CACHE FILEPATH > +# this line is needed as a cleanup to ensure that any CMakeCaches with the > old > +# default value get updated to the new default. > +if(CLANG_ORDER_FILE STREQUAL "") > + unset(CLANG_ORDER_FILE CACHE) > +endif() > + > +set(CLANG_ORDER_FILE ${CMAKE_CURRENT_BINARY_DIR}/clang.order CACHE FILEPATH > "Order file to use when compiling clang in order to improve startup time.") > > +if(NOT EXISTS ${CLANG_ORDER_FILE}) > + execute_process(COMMAND ${CMAKE_COMMAND} -E touch ${CLANG_ORDER_FILE}) > +endif() > + > if (CLANG_BUILT_STANDALONE OR CMAKE_VERSION VERSION_EQUAL 3 OR > CMAKE_VERSION VERSION_GREATER 3) > # Generate a list of CMake library targets so that other CMake projects can > > Modified: cfe/trunk/tools/driver/CMakeLists.txt > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/CMakeLists.txt?rev=259862&r1=259861&r2=259862&view=diff > > <http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/CMakeLists.txt?rev=259862&r1=259861&r2=259862&view=diff> > ============================================================================== > --- cfe/trunk/tools/driver/CMakeLists.txt (original) > +++ cfe/trunk/tools/driver/CMakeLists.txt Thu Feb 4 19:22:03 2016 > @@ -87,8 +87,12 @@ if (APPLE) > set(TOOL_INFO_BUILD_VERSION) > endif() > > -if(CLANG_ORDER_FILE) > +check_cxx_compiler_flag("-Wl,-order_file,${CLANG_ORDER_FILE}" > + LINKER_HAS_ORDER_FILE_FLAG) > + > +if(LINKER_HAS_ORDER_FILE_FLAG) > target_link_libraries(clang "-Wl,-order_file,${CLANG_ORDER_FILE}") > + set_target_properties(clang PROPERTIES LINK_DEPENDS ${CLANG_ORDER_FILE}) > endif() > > if(WITH_POLLY AND LINK_POLLY_INTO_TOOLS) > > Modified: cfe/trunk/utils/perf-training/CMakeLists.txt > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/perf-training/CMakeLists.txt?rev=259862&r1=259861&r2=259862&view=diff > > <http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/perf-training/CMakeLists.txt?rev=259862&r1=259861&r2=259862&view=diff> > ============================================================================== > --- cfe/trunk/utils/perf-training/CMakeLists.txt (original) > +++ cfe/trunk/utils/perf-training/CMakeLists.txt Thu Feb 4 19:22:03 2016 > @@ -55,9 +55,8 @@ if(DTRACE) > COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py > clean ${CMAKE_CURRENT_BINARY_DIR} dtrace > COMMENT "Clearing old dtrace data") > > - > add_custom_target(generate-order-file > - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py > gen-order-file --binary $<TARGET_FILE:clang> --output > ${CMAKE_CURRENT_BINARY_DIR}/clang.order ${CMAKE_CURRENT_BINARY_DIR} > + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py > gen-order-file --binary $<TARGET_FILE:clang> --output ${CLANG_ORDER_FILE} > ${CMAKE_CURRENT_BINARY_DIR} > COMMENT "Generating order file" > DEPENDS generate-dtrace-logs) > endif() > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits