File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -2945,6 +2945,31 @@ for host in "${ALL_HOSTS[@]}"; do
29452945 fi
29462946
29472947 call " ${CMAKE_BUILD[@]} " " ${build_dir} " $( cmake_config_opt ${product} ) -- " ${BUILD_ARGS[@]} " ${build_targets[@]}
2948+
2949+ # When we are building LLVM copy over the compiler-rt
2950+ # builtins for iOS/tvOS/watchOS to ensure that Swift's
2951+ # stdlib can use compiler-rt builtins when targetting iOS/tvOS/watchOS.
2952+ if [[ " ${product} " == " llvm" ]]; then
2953+ if [[ " $( uname -s) " == " Darwin" ]] ; then
2954+ HOST_CXX_DIR=$( dirname " ${HOST_CXX} " )
2955+ HOST_CXX_BUILTINS_VERSION=$( ls " $HOST_CXX_DIR /../lib/clang" | awk ' {print $0}' )
2956+ HOST_CXX_BUILTINS_DIR=" $HOST_CXX_DIR /../lib/clang/$HOST_CXX_BUILTINS_VERSION /lib/darwin"
2957+ DEST_CXX_BUILTINS_VERSION=$( ls " $llvm_build_dir /lib/clang" | awk ' {print $0}' )
2958+ DEST_BUILTINS_DIR=" $llvm_build_dir /lib/clang/$DEST_CXX_BUILTINS_VERSION /lib/darwin"
2959+
2960+ echo " copying compiler-rt embedded builtins into the local clang build directory $DEST_BUILTINS_DIR ."
2961+
2962+ if [ -f " $HOST_CXX_BUILTINS_DIR /libclang_rt.ios.a" ]; then
2963+ call cp " $HOST_CXX_BUILTINS_DIR /libclang_rt.ios.a" " $DEST_BUILTINS_DIR /libclang_rt.ios.a"
2964+ fi
2965+ if [ -f " $HOST_CXX_BUILTINS_DIR /libclang_rt.watchos.a" ]; then
2966+ call cp " $HOST_CXX_BUILTINS_DIR /libclang_rt.watchos.a" " $DEST_BUILTINS_DIR /libclang_rt.watchos.a"
2967+ fi
2968+ if [ -f " $HOST_CXX_BUILTINS_DIR /libclang_rt.tvos.a" ]; then
2969+ call cp " $HOST_CXX_BUILTINS_DIR /libclang_rt.tvos.a" " $DEST_BUILTINS_DIR /libclang_rt.tvos.a"
2970+ fi
2971+ fi
2972+ fi
29482973 fi
29492974 done
29502975done
You can’t perform that action at this time.
0 commit comments