Skip to content

Commit 280dc3a

Browse files
committed
mk: Sync with *ring*.
1 parent f84a538 commit 280dc3a

File tree

3 files changed

+132
-6
lines changed

3 files changed

+132
-6
lines changed

mk/cargo.sh

Lines changed: 71 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,14 @@ IFS=$'\n\t'
1919

2020
rustflags_self_contained="-Clink-self-contained=yes -Clinker=rust-lld"
2121
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"
2324
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"
2430

2531
# Avoid putting the Android tools in `$PATH` because there are tools in this
2632
# directory like `clang` that would conflict with the same-named tools that may
@@ -45,7 +51,7 @@ for arg in $*; do
4551
done
4652

4753
# See comments in install-build-tools.sh.
48-
llvm_version=15
54+
llvm_version=16
4955

5056
case $target in
5157
aarch64-linux-android)
@@ -66,22 +72,35 @@ case $target in
6672
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained"
6773
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUNNER="$qemu_aarch64"
6874
;;
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+
;;
6981
arm-unknown-linux-gnueabihf)
82+
# XXX: clang cannot build the sha256 and x25519 assembly.
7083
export CC_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc
7184
export AR_arm_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc-ar
7285
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"
7487
;;
7588
armv7-linux-androideabi)
7689
export CC_armv7_linux_androideabi=$android_tools/armv7a-linux-androideabi19-clang
7790
export AR_armv7_linux_androideabi=$android_tools/llvm-ar
7891
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=$android_tools/armv7a-linux-androideabi19-clang
7992
;;
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+
;;
8099
armv7-unknown-linux-musleabihf)
81100
export CC_armv7_unknown_linux_musleabihf=clang-$llvm_version
82101
export AR_armv7_unknown_linux_musleabihf=llvm-ar-$llvm_version
83102
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"
85104
;;
86105
i686-unknown-linux-gnu)
87106
export CC_i686_unknown_linux_gnu=clang-$llvm_version
@@ -99,6 +118,43 @@ case $target in
99118
export CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_LINKER=mipsel-linux-gnu-gcc
100119
export CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_GNU_RUNNER="$qemu_mipsel"
101120
;;
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+
;;
102158
x86_64-unknown-linux-musl)
103159
export CC_x86_64_unknown_linux_musl=clang-$llvm_version
104160
export AR_x86_64_unknown_linux_musl=llvm-ar-$llvm_version
@@ -109,13 +165,24 @@ case $target in
109165
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="$rustflags_self_contained"
110166
fi
111167
;;
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+
;;
112173
wasm32-unknown-unknown)
113174
# The first two are only needed for when the "wasm_c" feature is enabled.
114175
export CC_wasm32_unknown_unknown=clang-$llvm_version
115176
export AR_wasm32_unknown_unknown=llvm-ar-$llvm_version
116177
export CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner
117178
export WASM_BINDGEN_TEST_TIMEOUT=60
118179
;;
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+
;;
119186
*)
120187
;;
121188
esac

mk/install-build-tools.ps1

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# TODO: Lock this down to a specific commit instead of always using the latest.
2+
git clone `
3+
--branch windows `
4+
--depth 1 `
5+
https://github.com/briansmith/ring-toolchain `
6+
target/tools/windows

mk/install-build-tools.sh

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,13 @@ case $target in
7070
install_packages \
7171
qemu-user
7272
;;
73-
--target=arm-unknown-linux-gnueabihf)
73+
--target=arm-unknown-linux-gnueabi)
74+
install_packages \
75+
qemu-user \
76+
gcc-arm-linux-gnueabi \
77+
libc6-dev-armel-cross
78+
;;
79+
--target=arm-unknown-linux-gnueabihf|--target=armv7-unknown-linux-gnueabihf)
7480
install_packages \
7581
qemu-user \
7682
gcc-arm-linux-gnueabihf \
@@ -85,24 +91,71 @@ case $target in
8591
--target=i686-unknown-linux-musl|--target=x86_64-unknown-linux-musl)
8692
use_clang=1
8793
;;
94+
--target=loongarch64-unknown-linux-gnu)
95+
use_clang=1
96+
;;
8897
--target=mipsel-unknown-linux-gnu)
8998
install_packages \
9099
gcc-mipsel-linux-gnu \
91100
libc6-dev-mipsel-cross \
92101
qemu-user
93102
;;
103+
--target=powerpc-unknown-linux-gnu)
104+
use_clang=1
105+
install_packages \
106+
gcc-powerpc-linux-gnu \
107+
libc6-dev-powerpc-cross \
108+
qemu-user
109+
;;
110+
--target=powerpc64-unknown-linux-gnu)
111+
use_clang=1
112+
install_packages \
113+
gcc-powerpc64-linux-gnu \
114+
libc6-dev-ppc64-cross \
115+
qemu-user
116+
;;
117+
--target=powerpc64le-unknown-linux-gnu)
118+
use_clang=1
119+
install_packages \
120+
gcc-powerpc64le-linux-gnu \
121+
libc6-dev-ppc64el-cross \
122+
qemu-user
123+
;;
124+
--target=riscv64gc-unknown-linux-gnu)
125+
use_clang=1
126+
install_packages \
127+
gcc-riscv64-linux-gnu \
128+
libc6-dev-riscv64-cross \
129+
qemu-user
130+
;;
131+
--target=s390x-unknown-linux-gnu)
132+
# Clang is needed for code coverage.
133+
use_clang=1
134+
install_packages \
135+
qemu-user \
136+
gcc-s390x-linux-gnu \
137+
libc6-dev-s390x-cross
138+
;;
94139
--target=wasm32-unknown-unknown)
95140
cargo install wasm-bindgen-cli --bin wasm-bindgen-test-runner
96141
use_clang=1
97142
;;
143+
--target=wasm32-wasi)
144+
use_clang=1
145+
git clone \
146+
--branch linux-x86_64 \
147+
--depth 1 \
148+
https://github.com/briansmith/ring-toolchain \
149+
target/tools/linux-x86_64
150+
;;
98151
--target=*)
99152
;;
100153
esac
101154

102155
case "$OSTYPE" in
103156
linux*)
104157
ubuntu_codename=$(lsb_release --codename --short)
105-
llvm_version=15
158+
llvm_version=16
106159
sudo apt-key add mk/llvm-snapshot.gpg.key
107160
sudo add-apt-repository "deb http://apt.llvm.org/$ubuntu_codename/ llvm-toolchain-$ubuntu_codename-$llvm_version main"
108161
sudo apt-get update

0 commit comments

Comments
 (0)