|
30 | 30 |
|
31 | 31 | for arg in $*; do
|
32 | 32 | case $arg in
|
33 |
| - --target=aarch64-linux-android) |
34 |
| - export CC_aarch64_linux_android=$android_tools/aarch64-linux-android21-clang |
35 |
| - export AR_aarch64_linux_android=$android_tools/aarch64-linux-android-ar |
36 |
| - export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$android_tools/aarch64-linux-android21-clang |
37 |
| - ;; |
38 |
| - --target=aarch64-unknown-linux-gnu) |
39 |
| - export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc |
40 |
| - export AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc-ar |
41 |
| - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc |
42 |
| - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_aarch64" |
43 |
| - ;; |
44 |
| - --target=aarch64-unknown-linux-musl) |
45 |
| - export CC_aarch64_unknown_linux_musl=clang-10 |
46 |
| - export AR_aarch64_unknown_linux_musl=llvm-ar-10 |
47 |
| - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" |
48 |
| - export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="$qemu_aarch64" |
49 |
| - ;; |
50 |
| - --target=arm-unknown-linux-gnueabihf) |
51 |
| - export CC_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc |
52 |
| - export AR_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc-ar |
53 |
| - export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc |
54 |
| - export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="$qemu_arm" |
55 |
| - ;; |
56 |
| - --target=armv7-linux-androideabi) |
57 |
| - export CC_armv7_linux_androideabi=$android_tools/armv7a-linux-androideabi18-clang |
58 |
| - export AR_armv7_linux_androideabi=$android_tools/arm-linux-androideabi-ar |
59 |
| - export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=$android_tools/armv7a-linux-androideabi18-clang |
60 |
| - ;; |
61 |
| - --target=armv7-unknown-linux-musleabihf) |
62 |
| - export CC_armv7_unknown_linux_musleabihf=clang-10 |
63 |
| - export AR_armv7_unknown_linux_musleabihf=llvm-ar-10 |
64 |
| - export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS="$rustflags_self_contained" |
65 |
| - export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUNNER="$qemu_arm" |
66 |
| - ;; |
67 |
| - --target=i686-unknown-linux-gnu) |
68 |
| - export CC_i686_unknown_linux_gnu=clang-10 |
69 |
| - export AR_i686_unknown_linux_gnu=llvm-ar-10 |
70 |
| - export CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER=clang-10 |
71 |
| - ;; |
72 |
| - --target=i686-unknown-linux-musl) |
73 |
| - export CC_i686_unknown_linux_musl=clang-10 |
74 |
| - export AR_i686_unknown_linux_musl=llvm-ar-10 |
75 |
| - export CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_LINKER=clang-10 |
76 |
| - ;; |
77 |
| - --target=x86_64-unknown-linux-musl) |
78 |
| - export CC_x86_64_unknown_linux_musl=clang-10 |
79 |
| - export AR_x86_64_unknown_linux_musl=llvm-ar-10 |
80 |
| - export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=clang-10 |
81 |
| - ;; |
82 |
| - --target=wasm32-unknown-unknown) |
83 |
| - # The first two are only needed for when the "wasm_c" feature is enabled. |
84 |
| - export CC_wasm32_unknown_unknown=clang-10 |
85 |
| - export AR_wasm32_unknown_unknown=llvm-ar-10 |
86 |
| - export CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner |
| 33 | + --target=*) |
| 34 | + target=${arg#*=} |
87 | 35 | ;;
|
88 | 36 | *)
|
89 | 37 | ;;
|
90 | 38 | esac
|
91 | 39 | done
|
92 | 40 |
|
| 41 | +case $target in |
| 42 | + aarch64-linux-android) |
| 43 | + export CC_aarch64_linux_android=$android_tools/aarch64-linux-android21-clang |
| 44 | + export AR_aarch64_linux_android=$android_tools/aarch64-linux-android-ar |
| 45 | + export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$android_tools/aarch64-linux-android21-clang |
| 46 | + ;; |
| 47 | + aarch64-unknown-linux-gnu) |
| 48 | + export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc |
| 49 | + export AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc-ar |
| 50 | + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc |
| 51 | + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_aarch64" |
| 52 | + ;; |
| 53 | + aarch64-unknown-linux-musl) |
| 54 | + export CC_aarch64_unknown_linux_musl=clang-10 |
| 55 | + export AR_aarch64_unknown_linux_musl=llvm-ar-10 |
| 56 | + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained" |
| 57 | + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="$qemu_aarch64" |
| 58 | + ;; |
| 59 | + arm-unknown-linux-gnueabihf) |
| 60 | + export CC_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc |
| 61 | + export AR_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc-ar |
| 62 | + export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc |
| 63 | + export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="$qemu_arm" |
| 64 | + ;; |
| 65 | + armv7-linux-androideabi) |
| 66 | + export CC_armv7_linux_androideabi=$android_tools/armv7a-linux-androideabi18-clang |
| 67 | + export AR_armv7_linux_androideabi=$android_tools/arm-linux-androideabi-ar |
| 68 | + export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=$android_tools/armv7a-linux-androideabi18-clang |
| 69 | + ;; |
| 70 | + armv7-unknown-linux-musleabihf) |
| 71 | + export CC_armv7_unknown_linux_musleabihf=clang-10 |
| 72 | + export AR_armv7_unknown_linux_musleabihf=llvm-ar-10 |
| 73 | + export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS="$rustflags_self_contained" |
| 74 | + export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUNNER="$qemu_arm" |
| 75 | + ;; |
| 76 | + i686-unknown-linux-gnu) |
| 77 | + export CC_i686_unknown_linux_gnu=clang-10 |
| 78 | + export AR_i686_unknown_linux_gnu=llvm-ar-10 |
| 79 | + export CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER=clang-10 |
| 80 | + ;; |
| 81 | + i686-unknown-linux-musl) |
| 82 | + export CC_i686_unknown_linux_musl=clang-10 |
| 83 | + export AR_i686_unknown_linux_musl=llvm-ar-10 |
| 84 | + export CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_LINKER=clang-10 |
| 85 | + ;; |
| 86 | + x86_64-unknown-linux-musl) |
| 87 | + export CC_x86_64_unknown_linux_musl=clang-10 |
| 88 | + export AR_x86_64_unknown_linux_musl=llvm-ar-10 |
| 89 | + export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=clang-10 |
| 90 | + ;; |
| 91 | + wasm32-unknown-unknown) |
| 92 | + # The first two are only needed for when the "wasm_c" feature is enabled. |
| 93 | + export CC_wasm32_unknown_unknown=clang-10 |
| 94 | + export AR_wasm32_unknown_unknown=llvm-ar-10 |
| 95 | + export CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner |
| 96 | + ;; |
| 97 | + *) |
| 98 | + ;; |
| 99 | +esac |
| 100 | + |
| 101 | +if [ -n "${RING_COVERAGE-}" ]; then |
| 102 | + # XXX: Collides between release and debug. |
| 103 | + coverage_dir=$PWD/target/$target/debug/coverage |
| 104 | + mkdir -p "$coverage_dir" |
| 105 | + rm -f "$coverage_dir/*.profraw" |
| 106 | + |
| 107 | + export RING_BUILD_EXECUTABLE_LIST="$coverage_dir/executables" |
| 108 | + truncate --size=0 "$RING_BUILD_EXECUTABLE_LIST" |
| 109 | + |
| 110 | + export LLVM_PROFILE_FILE="$coverage_dir/%m.profraw" |
| 111 | + |
| 112 | + # ${target} with hyphens replaced by underscores, lowercase and uppercase. |
| 113 | + target_lower=${target//-/_} |
| 114 | + target_upper=${target_lower^^} |
| 115 | + |
| 116 | + cflags_var=CFLAGS_${target_lower} |
| 117 | + declare -x "${cflags_var}=-fprofile-instr-generate -fcoverage-mapping ${!cflags_var-}" |
| 118 | + |
| 119 | + runner_var=CARGO_TARGET_${target_upper}_RUNNER |
| 120 | + declare -x "${runner_var}=mk/runner ${!runner_var-}" |
| 121 | + |
| 122 | + rustflags_var=CARGO_TARGET_${target_upper}_RUSTFLAGS |
| 123 | + declare -x "${rustflags_var}=-Zinstrument-coverage ${!rustflags_var-}" |
| 124 | +fi |
| 125 | + |
93 | 126 | cargo "$@"
|
| 127 | + |
| 128 | +if [ -n "${RING_COVERAGE-}" ]; then |
| 129 | + llvm-profdata-10 merge -sparse "$coverage_dir"/*.profraw -o "$coverage_dir"/merged.profdata |
| 130 | + xargs --arg-file="$RING_BUILD_EXECUTABLE_LIST" \ |
| 131 | + llvm-cov-10 export \ |
| 132 | + --instr-profile "$coverage_dir"/merged.profdata \ |
| 133 | + --format lcov \ |
| 134 | + > "$coverage_dir"/coverage.txt |
| 135 | +fi |
0 commit comments