Fat archives is the big thing. Since we can do fat multi-stage builds using llvm-ar isn’t really ideal.
-Chris > On Apr 27, 2016, at 3:16 PM, Rafael Espíndola <rafael.espind...@gmail.com> > wrote: > > BTW, do you know what is missing in llvm-ar? I know of fat archive > support, but if there is something else could you open a bug report? > > Cheers, > Rafael > > > On 27 April 2016 at 14:52, Chris Bieneman via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> Author: cbieneman >> Date: Wed Apr 27 13:52:48 2016 >> New Revision: 267756 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=267756&view=rev >> Log: >> [CMake] On Darwin bootstrap LTO builds set DYLD_LIBRARY_PATH instead of >> using llvm-ar >> >> llvm-ar isn't really supported for Darwin, instead the host tools will load >> libLTO, so we can use the just-built libLTO. >> >> This actually makes Darwin bootstrap builds a little faster because you >> don't need to build llvm-ar before starting the next stage. >> >> Modified: >> cfe/trunk/CMakeLists.txt >> >> Modified: cfe/trunk/CMakeLists.txt >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=267756&r1=267755&r2=267756&view=diff >> ============================================================================== >> --- cfe/trunk/CMakeLists.txt (original) >> +++ cfe/trunk/CMakeLists.txt Wed Apr 27 13:52:48 2016 >> @@ -685,17 +685,21 @@ if (CLANG_ENABLE_BOOTSTRAP) >> >> set(STAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-stamps/) >> set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-bins/) >> + set(cmake_command ${CMAKE_COMMAND}) >> >> - # If on Darwin we need to make bootstrap depend on LTO and pass >> - # DARWIN_LTO_LIBRARY so that -flto will work using the just-built compiler >> + # If the next stage is LTO we need to depend on LTO and possibly LLVMgold >> if(BOOTSTRAP_LLVM_ENABLE_LTO OR LLVM_ENABLE_LTO) >> - set(LTO_DEP LTO llvm-ar llvm-ranlib) >> - set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) >> - set(LTO_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) >> + set(LTO_DEP LTO) >> if(APPLE) >> + # on Darwin we need to set DARWIN_LTO_LIBRARY so that -flto will work >> + # using the just-built compiler, and we need to override >> DYLD_LIBRARY_PATH >> + # so that the host object file tools will use the just-built libLTO. >> set(LTO_LIBRARY >> -DDARWIN_LTO_LIBRARY=${LLVM_SHLIB_OUTPUT_INTDIR}/libLTO.dylib) >> + set(cmake_command ${CMAKE_COMMAND} -E env >> DYLD_LIBRARY_PATH=${LLVM_LIBRARY_OUTPUT_INTDIR} ${CMAKE_COMMAND}) >> elseif(NOT WIN32) >> - list(APPEND LTO_DEP LLVMgold) >> + list(APPEND LTO_DEP LLVMgold llvm-ar llvm-ranlib) >> + set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) >> + set(LTO_RANLIB >> -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) >> endif() >> endif() >> >> @@ -791,6 +795,7 @@ if (CLANG_ENABLE_BOOTSTRAP) >> -DCLANG_STAGE=${NEXT_CLANG_STAGE} >> ${COMPILER_OPTIONS} >> ${LTO_LIBRARY} ${LTO_AR} ${LTO_RANLIB} ${verbose} ${PGO_OPT} >> + CMAKE_COMMAND ${cmake_command} >> INSTALL_COMMAND "" >> STEP_TARGETS configure build >> ${cmake_3_4_USES_TERMINAL_OPTIONS} >> @@ -799,7 +804,7 @@ if (CLANG_ENABLE_BOOTSTRAP) >> # exclude really-install from main target >> set_target_properties(${NEXT_CLANG_STAGE} PROPERTIES >> _EP_really-install_EXCLUDE_FROM_MAIN On) >> ExternalProject_Add_Step(${NEXT_CLANG_STAGE} really-install >> - COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target install >> + COMMAND ${cmake_command} --build <BINARY_DIR> --target install >> COMMENT "Performing install step for '${NEXT_CLANG_STAGE}'" >> DEPENDEES build >> ${cmake_3_4_USES_TERMINAL} >> @@ -815,7 +820,7 @@ if (CLANG_ENABLE_BOOTSTRAP) >> set_target_properties(${NEXT_CLANG_STAGE} PROPERTIES >> _EP_${target}_EXCLUDE_FROM_MAIN On) >> >> ExternalProject_Add_Step(${NEXT_CLANG_STAGE} ${target} >> - COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target ${target} >> + COMMAND ${cmake_command} --build <BINARY_DIR> --target ${target} >> COMMENT "Performing ${target} for '${NEXT_CLANG_STAGE}'" >> DEPENDEES configure >> ${cmake_3_4_USES_TERMINAL} >> >> >> _______________________________________________ >> 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