1 #!/bin/bash -e 2 3 # Copy binaries 4 for b in bin/*; do 5 file=`basename $b` 6 # Don't copy symlinks like clang++ or directories 7 if test -h $b || test -d $b; then 8 echo Skipping $file 9 else 10 echo Copying $file 11 cp -a `find ${ANDROID_HOST_OUT}/bin -name $file` $b 12 strip $b 13 fi 14 done 15 16 # Copy static analyzer scripts. 17 echo Copying static analyzer tools 18 rm -rf tools/* 19 mkdir -p tools 20 cp -ar ${ANDROID_BUILD_TOP}/external/clang/tools/scan-build tools 21 cp -ar ${ANDROID_BUILD_TOP}/external/clang/tools/scan-view tools 22 23 # Copy libraries 24 echo Copying libc++.so 25 cp -a ${ANDROID_HOST_OUT}/lib/libc++.so lib/ 26 cp -a ${ANDROID_HOST_OUT}/lib64/libc++.so lib64/ 27 28 # Copy header files 29 rm -rf lib/clang/*/include/* 30 for i in `find ${ANDROID_BUILD_TOP}/external/clang/lib/Headers -mindepth 1 ! -name \*.mk -a ! -name Makefile -a ! -name CMakeLists.txt`; do 31 echo Copying `basename $i` 32 cp -a $i lib/clang/*/include/ 33 done 34 35 # Copy over stdatomic.h from bionic 36 echo Copying stdatomic.h 37 cp -a ${ANDROID_BUILD_TOP}/bionic/libc/include/stdatomic.h lib/clang/*/include/ 38 39 echo Copying arm_neon.h 40 cp -a `find ${ANDROID_PRODUCT_OUT} -name arm_neon.h | head -n 1` lib/clang/*/include 41 42 function copy_profile_rt() { 43 target=$1 44 arch=$2 45 obj=${ANDROID_BUILD_TOP}/out/target/product/${target}/obj/STATIC_LIBRARIES 46 libdir=$(echo lib/clang/*)/lib/linux 47 lib=${libdir}/libclang_rt.profile-${arch}-android.a 48 cp -a ${obj}/libprofile_rt_intermediates/libprofile_rt.a ${lib} 49 } 50 51 function copy_host_profile_rt() { 52 arch=$1 53 obj_suffix=$2 54 obj=${ANDROID_BUILD_TOP}/out/host/linux-x86/obj$obj_suffix/STATIC_LIBRARIES 55 libdir=$(echo lib/clang/*)/lib/linux 56 lib=${libdir}/libclang_rt.profile-${arch}.a 57 cp -a ${obj}/libprofile_rt_intermediates/libprofile_rt.a ${lib} 58 } 59 60 copy_profile_rt generic arm 61 copy_profile_rt generic_arm64 aarch64 62 copy_profile_rt generic_mips mipsel 63 copy_profile_rt generic_mips64 mips64el 64 copy_profile_rt generic_x86 i686 65 copy_profile_rt generic_x86_64 x86_64 66 67 copy_host_profile_rt x86_64 68 copy_host_profile_rt i686 32 69 70 sh update-sanitizers.sh 71