I reverted the patch and made a pile of other changes to fix up the CMake 
caches on bots. They should all recover now.

-Chris

> On Feb 4, 2016, at 8:33 PM, Richard Smith <rich...@metafoo.co.uk> wrote:
> 
> This build might be using gold, I don't recall how that machine is 
> configured. I won't be able to test the fix until tomorrow, hopefully the 
> bits will give you enough.
> 
>> On 4 Feb 2016 7:07 p.m., "Chris Bieneman" <be...@apple.com> wrote:
>> Actually r259871 includes the code to cleanup the “bad” order file…
>> 
>> -Chris
>> 
>>> On Feb 4, 2016, at 7:02 PM, Chris Bieneman <be...@apple.com> wrote:
>>> 
>>> I pushed a speculative fix for this in r259870. I’m unable to reproduce 
>>> locally. There are a few bots that hit the same issue, so I’m watching them.
>>> 
>>> -Chris
>>> 
>>>> On Feb 4, 2016, at 6:44 PM, Chris Bieneman via cfe-commits 
>>>> <cfe-commits@lists.llvm.org> wrote:
>>>> 
>>>> 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> 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
>>>>>> 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
>>>>>> 
>>>>>> 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
>>>>>> ==============================================================================
>>>>>> --- 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
>>>>>> ==============================================================================
>>>>>> --- 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
>>>>>> ==============================================================================
>>>>>> --- 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
>>>>>> 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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to