Skip to content

Commit 8b1af4c

Browse files
committed
Auto merge of #120585 - Amanieu:ohos-tier2, r=Kobzol
Promote OpenHarmony targets to tier 2 MCP: rust-lang/compiler-team#719
2 parents 89b7830 + 5674f06 commit 8b1af4c

13 files changed

+124
-4
lines changed

.github/workflows/ci.yml

+3
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,9 @@ jobs:
235235
- name: dist-loongarch64-linux
236236
os: ubuntu-20.04-8core-32gb
237237
env: {}
238+
- name: dist-ohos
239+
os: ubuntu-20.04-8core-32gb
240+
env: {}
238241
- name: dist-powerpc-linux
239242
os: ubuntu-20.04-8core-32gb
240243
env: {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
FROM ubuntu:23.04
2+
3+
ARG DEBIAN_FRONTEND=noninteractive
4+
RUN apt-get update && apt-get install -y --no-install-recommends \
5+
g++ \
6+
make \
7+
ninja-build \
8+
file \
9+
curl \
10+
ca-certificates \
11+
python3 \
12+
git \
13+
cmake \
14+
sudo \
15+
gdb \
16+
libssl-dev \
17+
pkg-config \
18+
xz-utils \
19+
unzip \
20+
&& rm -rf /var/lib/apt/lists/*
21+
22+
COPY scripts/ohos-sdk.sh /scripts/
23+
RUN sh /scripts/ohos-sdk.sh
24+
25+
COPY scripts/ohos/aarch64-unknown-linux-ohos-clang.sh /usr/local/bin/
26+
COPY scripts/ohos/aarch64-unknown-linux-ohos-clang++.sh /usr/local/bin/
27+
COPY scripts/ohos/armv7-unknown-linux-ohos-clang.sh /usr/local/bin/
28+
COPY scripts/ohos/armv7-unknown-linux-ohos-clang++.sh /usr/local/bin/
29+
COPY scripts/ohos/x86_64-unknown-linux-ohos-clang.sh /usr/local/bin/
30+
COPY scripts/ohos/x86_64-unknown-linux-ohos-clang++.sh /usr/local/bin/
31+
32+
# env
33+
ENV TARGETS=aarch64-unknown-linux-ohos
34+
ENV TARGETS=$TARGETS,armv7-unknown-linux-ohos
35+
ENV TARGETS=$TARGETS,x86_64-unknown-linux-ohos
36+
37+
ENV \
38+
CC_aarch64_unknown_linux_ohos=/usr/local/bin/aarch64-unknown-linux-ohos-clang.sh \
39+
AR_aarch64_unknown_linux_ohos=/opt/ohos-sdk/native/llvm/bin/llvm-ar \
40+
CXX_aarch64_unknown_linux_ohos=/usr/local/bin/aarch64-unknown-linux-ohos-clang++.sh
41+
ENV \
42+
CC_armv7_unknown_linux_ohos=/usr/local/bin/armv7-unknown-linux-ohos-clang.sh \
43+
AR_armv7_unknown_linux_ohos=/opt/ohos-sdk/native/llvm/bin/llvm-ar \
44+
CXX_armv7_unknown_linux_ohos=/usr/local/bin/armv7-unknown-linux-ohos-clang++.sh
45+
ENV \
46+
CC_x86_64_unknown_linux_ohos=/usr/local/bin/x86_64-unknown-linux-ohos-clang.sh \
47+
AR_x86_64_unknown_linux_ohos=/opt/ohos-sdk/native/llvm/bin/llvm-ar \
48+
CXX_x86_64_unknown_linux_ohos=/usr/local/bin/x86_64-unknown-linux-ohos-clang++.sh
49+
50+
ENV RUST_CONFIGURE_ARGS \
51+
--enable-profiler \
52+
--disable-docs
53+
54+
ENV SCRIPT python3 ../x.py dist --host='' --target $TARGETS
55+
56+
COPY scripts/sccache.sh /scripts/
57+
RUN sh /scripts/sccache.sh

src/ci/docker/scripts/ohos-sdk.sh

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh
2+
set -ex
3+
4+
URL=https://repo.huaweicloud.com/openharmony/os/4.0-Release/ohos-sdk-windows_linux-public.tar.gz
5+
6+
curl $URL | tar xz -C /tmp ohos-sdk/linux/native-linux-x64-4.0.10.13-Release.zip
7+
mkdir /opt/ohos-sdk
8+
cd /opt/ohos-sdk
9+
unzip -qq /tmp/ohos-sdk/linux/native-linux-x64-4.0.10.13-Release.zip
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
exec /opt/ohos-sdk/native/llvm/bin/clang++ \
3+
-target aarch64-linux-ohos \
4+
--sysroot=/opt/ohos-sdk/native/sysroot \
5+
-D__MUSL__ \
6+
"$@"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
exec /opt/ohos-sdk/native/llvm/bin/clang \
3+
-target aarch64-linux-ohos \
4+
--sysroot=/opt/ohos-sdk/native/sysroot \
5+
-D__MUSL__ \
6+
"$@"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/sh
2+
exec /opt/ohos-sdk/native/llvm/bin/clang++ \
3+
-target arm-linux-ohos \
4+
--sysroot=/opt/ohos-sdk/native/sysroot \
5+
-D__MUSL__ \
6+
-march=armv7-a \
7+
-mfloat-abi=softfp \
8+
-mtune=generic-armv7-a \
9+
-mthumb \
10+
"$@"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/sh
2+
exec /opt/ohos-sdk/native/llvm/bin/clang \
3+
-target arm-linux-ohos \
4+
--sysroot=/opt/ohos-sdk/native/sysroot \
5+
-D__MUSL__ \
6+
-march=armv7-a \
7+
-mfloat-abi=softfp \
8+
-mtune=generic-armv7-a \
9+
-mthumb \
10+
"$@"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
exec /opt/ohos-sdk/native/llvm/bin/clang++ \
3+
-target x86_64-linux-ohos \
4+
--sysroot=/opt/ohos-sdk/native/sysroot \
5+
-D__MUSL__ \
6+
"$@"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
exec /opt/ohos-sdk/native/llvm/bin/clang \
3+
-target x86_64-linux-ohos \
4+
--sysroot=/opt/ohos-sdk/native/sysroot \
5+
-D__MUSL__ \
6+
"$@"

src/ci/github-actions/ci.yml

+3
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,9 @@ jobs:
413413
- name: dist-loongarch64-linux
414414
<<: *job-linux-8c
415415

416+
- name: dist-ohos
417+
<<: *job-linux-8c
418+
416419
- name: dist-powerpc-linux
417420
<<: *job-linux-8c
418421

src/doc/rustc/src/platform-support.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ target | std | notes
143143
`aarch64-fuchsia` | ✓ | Alias for `aarch64-unknown-fuchsia`
144144
[`aarch64-unknown-fuchsia`](platform-support/fuchsia.md) | ✓ | ARM64 Fuchsia
145145
[`aarch64-linux-android`](platform-support/android.md) | ✓ | ARM64 Android
146+
[`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | ARM64 OpenHarmony
146147
`aarch64-unknown-none-softfloat` | * | Bare ARM64, softfloat
147148
`aarch64-unknown-none` | * | Bare ARM64, hardfloat
148149
[`aarch64-unknown-uefi`](platform-support/unknown-uefi.md) | * | ARM64 UEFI
@@ -157,6 +158,7 @@ target | std | notes
157158
`armv7-unknown-linux-gnueabi` | ✓ | ARMv7-A Linux (kernel 4.15, glibc 2.27)
158159
`armv7-unknown-linux-musleabi` | ✓ | ARMv7-A Linux with MUSL
159160
`armv7-unknown-linux-musleabihf` | ✓ | ARMv7-A Linux with MUSL, hardfloat
161+
[`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | ARMv7-A OpenHarmony
160162
[`armv7a-none-eabi`](platform-support/arm-none-eabi.md) | * | Bare ARMv7-A
161163
[`armv7r-none-eabi`](platform-support/armv7r-none-eabi.md) | * | Bare ARMv7-R
162164
[`armv7r-none-eabihf`](platform-support/armv7r-none-eabi.md) | * | Bare ARMv7-R, hardfloat
@@ -199,6 +201,7 @@ target | std | notes
199201
[`x86_64-linux-android`](platform-support/android.md) | ✓ | 64-bit x86 Android
200202
`x86_64-pc-solaris` | ✓ | 64-bit Solaris 11, illumos
201203
`x86_64-unknown-linux-gnux32` | ✓ | 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27)
204+
[`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | x86_64 OpenHarmony
202205
[`x86_64-unknown-none`](platform-support/x86_64-unknown-none.md) | * | Freestanding/bare-metal x86_64, softfloat
203206
`x86_64-unknown-redox` | ✓ | Redox OS
204207
[`x86_64-unknown-uefi`](platform-support/unknown-uefi.md) | * | 64-bit UEFI
@@ -244,7 +247,6 @@ target | std | host | notes
244247
[`aarch64-kmc-solid_asp3`](platform-support/kmc-solid.md) | ✓ | | ARM64 SOLID with TOPPERS/ASP3
245248
[`aarch64-nintendo-switch-freestanding`](platform-support/aarch64-nintendo-switch-freestanding.md) | * | | ARM64 Nintendo Switch, Horizon
246249
[`aarch64-pc-windows-gnullvm`](platform-support/pc-windows-gnullvm.md) | ✓ | ✓ |
247-
[`aarch64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARM64 OpenHarmony |
248250
[`aarch64-unknown-teeos`](platform-support/aarch64-unknown-teeos.md) | ? | | ARM64 TEEOS |
249251
[`aarch64-unknown-nto-qnx710`](platform-support/nto-qnx.md) | ✓ | | ARM64 QNX Neutrino 7.1 RTOS |
250252
`aarch64-unknown-freebsd` | ✓ | ✓ | ARM64 FreeBSD
@@ -269,7 +271,6 @@ target | std | host | notes
269271
[`armv6-unknown-netbsd-eabihf`](platform-support/netbsd.md) | ✓ | ✓ | ARMv6 NetBSD w/hard-float
270272
[`armv6k-nintendo-3ds`](platform-support/armv6k-nintendo-3ds.md) | ? | | ARMv6K Nintendo 3DS, Horizon (Requires devkitARM toolchain)
271273
[`armv7-sony-vita-newlibeabihf`](platform-support/armv7-sony-vita-newlibeabihf.md) | ✓ | | ARMv7-A Cortex-A9 Sony PlayStation Vita (requires VITASDK toolchain)
272-
[`armv7-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | ARMv7-A OpenHarmony |
273274
[`armv7-unknown-linux-uclibceabi`](platform-support/armv7-unknown-linux-uclibceabi.md) | ✓ | ✓ | ARMv7-A Linux with uClibc, softfloat
274275
[`armv7-unknown-linux-uclibceabihf`](platform-support/armv7-unknown-linux-uclibceabihf.md) | ✓ | ? | ARMv7-A Linux with uClibc, hardfloat
275276
`armv7-unknown-freebsd` | ✓ | ✓ | ARMv7-A FreeBSD
@@ -374,7 +375,6 @@ target | std | host | notes
374375
`x86_64-unknown-haiku` | ✓ | ✓ | 64-bit Haiku
375376
[`x86_64-unknown-hermit`](platform-support/hermit.md) | ✓ | | x86_64 Hermit
376377
`x86_64-unknown-l4re-uclibc` | ? | |
377-
[`x86_64-unknown-linux-ohos`](platform-support/openharmony.md) | ✓ | | x86_64 OpenHarmony |
378378
[`x86_64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | 64-bit OpenBSD
379379
`x86_64-uwp-windows-gnu` | ✓ | |
380380
`x86_64-uwp-windows-msvc` | ✓ | |

src/doc/rustc/src/platform-support/openharmony.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# `*-unknown-linux-ohos`
22

3-
**Tier: 3**
3+
**Tier: 2**
44

55
Targets for the [OpenHarmony](https://gitee.com/openharmony/docs/) operating
66
system.
77

88
## Target maintainers
99

1010
- Amanieu d'Antras ([@Amanieu](https://github.com/Amanieu))
11+
- Lu Binglun ([@lubinglun](https://github.com/lubinglun))
1112

1213
## Setup
1314

src/tools/build-manifest/src/main.rs

+3
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ static TARGETS: &[&str] = &[
6060
"aarch64-unknown-hermit",
6161
"aarch64-unknown-linux-gnu",
6262
"aarch64-unknown-linux-musl",
63+
"aarch64-unknown-linux-ohos",
6364
"aarch64-unknown-none",
6465
"aarch64-unknown-none-softfloat",
6566
"aarch64-unknown-redox",
@@ -79,6 +80,7 @@ static TARGETS: &[&str] = &[
7980
"thumbv7neon-unknown-linux-gnueabihf",
8081
"armv7-unknown-linux-musleabi",
8182
"armv7-unknown-linux-musleabihf",
83+
"armv7-unknown-linux-ohos",
8284
"armebv7r-none-eabi",
8385
"armebv7r-none-eabihf",
8486
"armv7r-none-eabi",
@@ -161,6 +163,7 @@ static TARGETS: &[&str] = &[
161163
"x86_64-unknown-linux-gnu",
162164
"x86_64-unknown-linux-gnux32",
163165
"x86_64-unknown-linux-musl",
166+
"x86_64-unknown-linux-ohos",
164167
"x86_64-unknown-netbsd",
165168
"x86_64-unknown-none",
166169
"x86_64-unknown-redox",

0 commit comments

Comments
 (0)