@@ -19,8 +19,14 @@ IFS=$'\n\t'
19
19
20
20
rustflags_self_contained=" -Clink-self-contained=yes -Clinker=rust-lld"
21
21
qemu_aarch64=" qemu-aarch64 -L /usr/aarch64-linux-gnu"
22
- qemu_arm=" qemu-arm -L /usr/arm-linux-gnueabihf"
22
+ qemu_arm_gnueabi=" qemu-arm -L /usr/arm-linux-gnueabi"
23
+ qemu_arm_gnueabihf=" qemu-arm -L /usr/arm-linux-gnueabihf"
23
24
qemu_mipsel=" qemu-mipsel -L /usr/mipsel-linux-gnu"
25
+ qemu_powerpc=" qemu-ppc -L /usr/powerpc-linux-gnu"
26
+ qemu_powerpc64=" qemu-ppc64 -L /usr/powerpc64-linux-gnu"
27
+ qemu_powerpc64le=" qemu-ppc64le -L /usr/powerpc64le-linux-gnu"
28
+ qemu_riscv64=" qemu-riscv64 -L /usr/riscv64-linux-gnu"
29
+ qemu_s390x=" qemu-s390x -L /usr/s390x-linux-gnu"
24
30
25
31
# Avoid putting the Android tools in `$PATH` because there are tools in this
26
32
# directory like `clang` that would conflict with the same-named tools that may
@@ -45,7 +51,7 @@ for arg in $*; do
45
51
done
46
52
47
53
# See comments in install-build-tools.sh.
48
- llvm_version=15
54
+ llvm_version=16
49
55
50
56
case $target in
51
57
aarch64-linux-android)
@@ -66,22 +72,35 @@ case $target in
66
72
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS=" $rustflags_self_contained "
67
73
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER=" $qemu_aarch64 "
68
74
;;
75
+ arm-unknown-linux-gnueabi)
76
+ export CC_arm_unknown_linux_gnueabi=arm-linux-gnueabi-gcc
77
+ export AR_arm_unknown_linux_gnueabi=arm-linux-gnueabi-gcc-ar
78
+ export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabi-gcc
79
+ export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABI_RUNNER=" $qemu_arm_gnueabi "
80
+ ;;
69
81
arm-unknown-linux-gnueabihf)
82
+ # XXX: clang cannot build the sha256 and x25519 assembly.
70
83
export CC_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc
71
84
export AR_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc-ar
72
85
export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
73
- export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER=" $qemu_arm "
86
+ export CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER=" $qemu_arm_gnueabihf "
74
87
;;
75
88
armv7-linux-androideabi)
76
89
export CC_armv7_linux_androideabi=$android_tools /armv7a-linux-androideabi19-clang
77
90
export AR_armv7_linux_androideabi=$android_tools /llvm-ar
78
91
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=$android_tools /armv7a-linux-androideabi19-clang
79
92
;;
93
+ armv7-unknown-linux-gnueabihf)
94
+ export CC_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc
95
+ export AR_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc-ar
96
+ export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc
97
+ export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER=" $qemu_arm_gnueabihf "
98
+ ;;
80
99
armv7-unknown-linux-musleabihf)
81
100
export CC_armv7_unknown_linux_musleabihf=clang-$llvm_version
82
101
export AR_armv7_unknown_linux_musleabihf=llvm-ar-$llvm_version
83
102
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS=" $rustflags_self_contained "
84
- export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUNNER=" $qemu_arm "
103
+ export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUNNER=" $qemu_arm_gnueabihf "
85
104
;;
86
105
i686-unknown-linux-gnu)
87
106
export CC_i686_unknown_linux_gnu=clang-$llvm_version
@@ -99,6 +118,43 @@ case $target in
99
118
export CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_LINKER=mipsel-linux-gnu-gcc
100
119
export CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_RUNNER=" $qemu_mipsel "
101
120
;;
121
+ powerpc-unknown-linux-gnu)
122
+ export CC_powerpc_unknown_linux_gnu=clang-$llvm_version
123
+ export AR_powerpc_unknown_linux_gnu=llvm-ar-$llvm_version
124
+ export CFLAGS_powerpc_unknown_linux_gnu=" --sysroot=/usr/powerpc-linux-gnu"
125
+ export CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER=powerpc-linux-gnu-gcc
126
+ export CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER=" $qemu_powerpc "
127
+ ;;
128
+ powerpc64-unknown-linux-gnu)
129
+ export CC_powerpc64_unknown_linux_gnu=clang-$llvm_version
130
+ export AR_powerpc64_unknown_linux_gnu=llvm-ar-$llvm_version
131
+ export CFLAGS_powerpc64_unknown_linux_gnu=" --sysroot=/usr/powerpc64-linux-gnu"
132
+ export CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc
133
+ export CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER=" $qemu_powerpc64 "
134
+ ;;
135
+ powerpc64le-unknown-linux-gnu)
136
+ export CC_powerpc64le_unknown_linux_gnu=clang-$llvm_version
137
+ export AR_powerpc64le_unknown_linux_gnu=llvm-ar-$llvm_version
138
+ export CFLAGS_powerpc64le_unknown_linux_gnu=" --sysroot=/usr/powerpc64le-linux-gnu"
139
+ export CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc
140
+ export CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER=" $qemu_powerpc64le "
141
+ ;;
142
+ riscv64gc-unknown-linux-gnu)
143
+ export CC_riscv64gc_unknown_linux_gnu=clang-$llvm_version
144
+ export AR_riscv64gc_unknown_linux_gnu=llvm-ar-$llvm_version
145
+ export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc
146
+ export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER=" $qemu_riscv64 "
147
+ ;;
148
+ s390x-unknown-linux-gnu)
149
+ export CC_s390x_unknown_linux_gnu=clang-$llvm_version
150
+ export AR_s390x_unknown_linux_gnu=llvm-ar-$llvm_version
151
+ # XXX: Using -march=zEC12 to work around a z13 instruction bug in
152
+ # QEMU 8.0.2 and earlier that causes `test_constant_time` to fail
153
+ # (https://lists.gnu.org/archive/html/qemu-devel/2023-05/msg06965.html).
154
+ export CFLAGS_s390x_unknown_linux_gnu=" --sysroot=/usr/s390x-linux-gnu -march=zEC12"
155
+ export CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc
156
+ export CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER=" $qemu_s390x "
157
+ ;;
102
158
x86_64-unknown-linux-musl)
103
159
export CC_x86_64_unknown_linux_musl=clang-$llvm_version
104
160
export AR_x86_64_unknown_linux_musl=llvm-ar-$llvm_version
@@ -109,13 +165,24 @@ case $target in
109
165
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS=" $rustflags_self_contained "
110
166
fi
111
167
;;
168
+ loongarch64-unknown-linux-gnu)
169
+ export CC_loongarch64_unknown_linux_gnu=clang-$llvm_version
170
+ export AR_loongarch64_unknown_linux_gnu=llvm-ar-$llvm_version
171
+ export CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=clang-$llvm_version
172
+ ;;
112
173
wasm32-unknown-unknown)
113
174
# The first two are only needed for when the "wasm_c" feature is enabled.
114
175
export CC_wasm32_unknown_unknown=clang-$llvm_version
115
176
export AR_wasm32_unknown_unknown=llvm-ar-$llvm_version
116
177
export CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner
117
178
export WASM_BINDGEN_TEST_TIMEOUT=60
118
179
;;
180
+ wasm32-wasi)
181
+ # The first two are only needed for when the "wasm_c" feature is enabled.
182
+ export CC_wasm32_wasi=clang-$llvm_version
183
+ export AR_wasm32_wasi=llvm-ar-$llvm_version
184
+ export CARGO_TARGET_WASM32_WASI_RUNNER=target/tools/linux-x86_64/wasmtime/wasmtime
185
+ ;;
119
186
* )
120
187
;;
121
188
esac
0 commit comments