Skip to content

Commit 8c0e289

Browse files
committed
Add aarch64_be-unknown-linux-musl target
1 parent 955b2bf commit 8c0e289

File tree

5 files changed

+98
-0
lines changed

5 files changed

+98
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ terminate.
207207
| `aarch64-unknown-linux-gnu:centos` [7] | 2.17 | 4.8.5 | | 4.2.1 ||
208208
| `aarch64-unknown-linux-musl` | 1.2.3 | 9.2.0 || 6.1.0 ||
209209
| `aarch64_be-unknown-linux-gnu` | 2.36 | 14.2.0 || 6.1.0 ||
210+
| `aarch64_be-unknown-linux-musl` | 1.2.5 | 14.2.0 || 6.1.0 ||
210211
| `arm-linux-androideabi` [1] | 9.0.8 | 9.0.8 || 6.1.0 ||
211212
| `arm-unknown-linux-gnueabi` | 2.31 | 9.4.0 || 6.1.0 ||
212213
| `arm-unknown-linux-gnueabihf` | 2.31 | 8.5.0 || 6.1.0 ||
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
FROM ubuntu:24.04 AS cross-base
2+
ENV DEBIAN_FRONTEND=noninteractive
3+
4+
COPY common.sh lib.sh /
5+
RUN /common.sh
6+
7+
COPY cmake.sh /
8+
RUN /cmake.sh
9+
10+
FROM cross-base AS build
11+
12+
ARG VERBOSE
13+
COPY crosstool-ng.sh /
14+
COPY crosstool-config/aarch64_be-unknown-linux-musl.config /
15+
RUN /crosstool-ng.sh aarch64_be-unknown-linux-musl.config 5
16+
17+
ENV PATH=/x-tools/aarch64_be-unknown-linux-musl/bin/:$PATH
18+
19+
COPY qemu.sh /
20+
RUN /qemu.sh aarch64_be
21+
22+
COPY qemu-runner base-runner.sh /
23+
COPY toolchain.cmake /opt/toolchain.cmake
24+
25+
COPY tidyup.sh /
26+
RUN /tidyup.sh
27+
28+
ENV CROSS_TOOLCHAIN_PREFIX=aarch64_be-unknown-linux-musl-
29+
ENV CROSS_SYSROOT=/x-tools/aarch64_be-unknown-linux-musl/aarch64_be-unknown-linux-musl/sysroot/
30+
ENV CROSS_TARGET_RUNNER="/qemu-runner aarch64_be"
31+
ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_LINKER="$CROSS_TOOLCHAIN_PREFIX"gcc \
32+
CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER="$CROSS_TARGET_RUNNER" \
33+
AR_aarch64_be_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"ar \
34+
CC_aarch64_be_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"gcc \
35+
CXX_aarch64_be_unknown_linux_musl="$CROSS_TOOLCHAIN_PREFIX"g++ \
36+
CMAKE_TOOLCHAIN_FILE_aarch64_be_unknown_linux_musl=/opt/toolchain.cmake \
37+
BINDGEN_EXTRA_CLANG_ARGS_aarch64_be_unknown_linux_musl="--sysroot=$CROSS_SYSROOT -idirafter/usr/include" \
38+
QEMU_LD_PREFIX="$CROSS_SYSROOT" \
39+
RUST_TEST_THREADS=1 \
40+
CROSS_CMAKE_SYSTEM_NAME=Linux \
41+
CROSS_CMAKE_SYSTEM_PROCESSOR=aarch64_be \
42+
CROSS_CMAKE_CRT=musl \
43+
CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC"
44+
45+
RUN sed -e "s#@DEFAULT_QEMU_LD_PREFIX@#$QEMU_LD_PREFIX#g" -i /qemu-runner
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
CT_CONFIG_VERSION="4"
2+
CT_EXPERIMENTAL=y
3+
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
4+
CT_ARCH_ARM=y
5+
CT_ARCH_64=y
6+
CT_ARCH_BE=y
7+
CT_ARCH_FLOAT_HW=y
8+
# CT_DEMULTILIB is not set
9+
CT_ARCH_USE_MMU=y
10+
CT_KERNEL_LINUX=y
11+
CT_LINUX_V_5_19=y
12+
# CT_LINUX_NO_VERSIONS is not set
13+
CT_LINUX_VERSION="5.19.16"
14+
CT_LINUX_later_than_4_8=y
15+
CT_LINUX_4_8_or_later=y
16+
CT_LINUX_later_than_3_7=y
17+
CT_LINUX_3_7_or_later=y
18+
CT_LINUX_later_than_3_2=y
19+
CT_LINUX_3_2_or_later=y
20+
CT_LIBC_MUSL=y
21+
CT_MUSL_V_1_2_5=y
22+
# CT_MUSL_NO_VERSIONS is not set
23+
CT_MUSL_VERSION="1.2.5"
24+
CT_GCC_V_14=y
25+
# CT_GCC_NO_VERSIONS is not set
26+
CT_GCC_VERSION="14.2.0"
27+
CT_GCC_later_than_7=y
28+
CT_GCC_7_or_later=y
29+
CT_GCC_later_than_6=y
30+
CT_GCC_6_or_later=y
31+
CT_GCC_later_than_5=y
32+
CT_GCC_5_or_later=y
33+
CT_GCC_later_than_4_9=y
34+
CT_GCC_4_9_or_later=y
35+
CT_GCC_later_than_4_8=y
36+
CT_GCC_4_8_or_later=y
37+
CT_CC_GCC_ENABLE_DEFAULT_PIE=y
38+
CT_CC_LANG_CXX=y
39+

src/docker/provided_images.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ pub static PROVIDED_IMAGES: &[ProvidedImage] = &[
133133
platforms: &[ImagePlatform::X86_64_UNKNOWN_LINUX_GNU],
134134
sub: None
135135
},
136+
ProvidedImage {
137+
name: "aarch64_be-unknown-linux-musl",
138+
platforms: &[ImagePlatform::X86_64_UNKNOWN_LINUX_GNU],
139+
sub: None
140+
},
136141
ProvidedImage {
137142
name: "arm-unknown-linux-musleabihf",
138143
platforms: &[ImagePlatform::X86_64_UNKNOWN_LINUX_GNU],

targets.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,14 @@ dylib = true
271271
std = true
272272
run = true
273273

274+
[[target]]
275+
target = "aarch64_be-unknown-linux-musl"
276+
os = "ubuntu-latest"
277+
cpp = true
278+
dylib = true
279+
std = true
280+
run = true
281+
274282
[[target]]
275283
target = "arm-unknown-linux-musleabihf"
276284
os = "ubuntu-latest"

0 commit comments

Comments
 (0)