summaryrefslogtreecommitdiff
path: root/update.sh
blob: 0c090f180c5ed45f5ac7aeb34c1f7c1d9cd38b0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash -e

# Copy binaries
for b in bin/*; do
  file=`basename $b`
  # Don't copy symlinks like clang++
  if test -h $b; then
    echo Skipping $file
  else
    echo Copying $file
    cp -a `find ${ANDROID_HOST_OUT}/bin -name $file` $b
    strip $b
  fi
done

# Copy static analyzer scripts.
echo Copying static analyzer tools
rm -rf tools/*
mkdir -p tools
cp -ar ${ANDROID_BUILD_TOP}/external/clang/tools/scan-build tools
cp -ar ${ANDROID_BUILD_TOP}/external/clang/tools/scan-view tools

# Copy libraries
echo Copying libc++.so
cp -a ${ANDROID_HOST_OUT}/lib/libc++.so lib/
cp -a ${ANDROID_HOST_OUT}/lib64/libc++.so lib64/

# Copy header files
rm -rf lib/clang/*/include/*
for i in `find ${ANDROID_BUILD_TOP}/external/clang/lib/Headers -mindepth 1 ! -name \*.mk -a ! -name Makefile -a ! -name CMakeLists.txt`; do
  echo Copying `basename $i`
  cp -a $i lib/clang/*/include/
done

# Copy over stdatomic.h from bionic
echo Copying stdatomic.h
cp -a ${ANDROID_BUILD_TOP}/bionic/libc/include/stdatomic.h lib/clang/*/include/

echo Copying arm_neon.h
cp -a `find ${ANDROID_PRODUCT_OUT} -name arm_neon.h | head -n 1` lib/clang/*/include

function copy_profile_rt() {
  target=$1
  arch=$2
  obj=${ANDROID_BUILD_TOP}/out/target/product/${target}/obj/STATIC_LIBRARIES
  libdir=$(echo lib/clang/*)/lib/linux
  lib=${libdir}/libclang_rt.profile-${arch}-android.a
  cp -a ${obj}/libprofile_rt_intermediates/libprofile_rt.a ${lib}
}

function copy_host_profile_rt() {
  arch=$1
  obj_suffix=$2
  obj=${ANDROID_BUILD_TOP}/out/host/linux-x86/obj$obj_suffix/STATIC_LIBRARIES
  libdir=$(echo lib/clang/*)/lib/linux
  lib=${libdir}/libclang_rt.profile-${arch}.a
  cp -a ${obj}/libprofile_rt_intermediates/libprofile_rt.a ${lib}
}

copy_profile_rt generic arm
copy_profile_rt generic_arm64 aarch64
copy_profile_rt generic_mips mipsel
copy_profile_rt generic_mips64 mips64el
copy_profile_rt generic_x86 i686
copy_profile_rt generic_x86_64 x86_64

copy_host_profile_rt x86_64
copy_host_profile_rt i686 32

sh update-sanitizers.sh