about summary refs log tree commit diff
path: root/src/ci/docker
diff options
context:
space:
mode:
authorAmanieu d'Antras <amanieu@gmail.com>2024-02-02 16:04:37 +0000
committerAmanieu d'Antras <amanieu@gmail.com>2024-03-02 18:11:25 +0000
commit5674f0662faa14c71cd28281700f3db8f52280e6 (patch)
tree47489acb6d81a74dad8746173245bda8f1869782 /src/ci/docker
parent6db96de66c2c0ea3f4f2f348ed1a83c2c507687d (diff)
downloadrust-5674f0662faa14c71cd28281700f3db8f52280e6.tar.gz
rust-5674f0662faa14c71cd28281700f3db8f52280e6.zip
Promote OpenHarmony targets to tier 2
MCP: rust-lang/compiler-team#719
Diffstat (limited to 'src/ci/docker')
-rw-r--r--src/ci/docker/host-x86_64/dist-ohos/Dockerfile57
-rwxr-xr-xsrc/ci/docker/scripts/ohos-sdk.sh9
-rwxr-xr-xsrc/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang++.sh6
-rwxr-xr-xsrc/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang.sh6
-rwxr-xr-xsrc/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang++.sh10
-rwxr-xr-xsrc/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang.sh10
-rwxr-xr-xsrc/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang++.sh6
-rwxr-xr-xsrc/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang.sh6
8 files changed, 110 insertions, 0 deletions
diff --git a/src/ci/docker/host-x86_64/dist-ohos/Dockerfile b/src/ci/docker/host-x86_64/dist-ohos/Dockerfile
new file mode 100644
index 00000000000..6dff3095b46
--- /dev/null
+++ b/src/ci/docker/host-x86_64/dist-ohos/Dockerfile
@@ -0,0 +1,57 @@
+FROM ubuntu:23.04
+
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
+    g++ \
+    make \
+    ninja-build \
+    file \
+    curl \
+    ca-certificates \
+    python3 \
+    git \
+    cmake \
+    sudo \
+    gdb \
+    libssl-dev \
+    pkg-config \
+    xz-utils \
+    unzip \
+    && rm -rf /var/lib/apt/lists/*
+
+COPY scripts/ohos-sdk.sh /scripts/
+RUN sh /scripts/ohos-sdk.sh
+
+COPY scripts/ohos/aarch64-unknown-linux-ohos-clang.sh /usr/local/bin/
+COPY scripts/ohos/aarch64-unknown-linux-ohos-clang++.sh /usr/local/bin/
+COPY scripts/ohos/armv7-unknown-linux-ohos-clang.sh /usr/local/bin/
+COPY scripts/ohos/armv7-unknown-linux-ohos-clang++.sh /usr/local/bin/
+COPY scripts/ohos/x86_64-unknown-linux-ohos-clang.sh /usr/local/bin/
+COPY scripts/ohos/x86_64-unknown-linux-ohos-clang++.sh /usr/local/bin/
+
+# env
+ENV TARGETS=aarch64-unknown-linux-ohos
+ENV TARGETS=$TARGETS,armv7-unknown-linux-ohos
+ENV TARGETS=$TARGETS,x86_64-unknown-linux-ohos
+
+ENV \
+    CC_aarch64_unknown_linux_ohos=/usr/local/bin/aarch64-unknown-linux-ohos-clang.sh \
+    AR_aarch64_unknown_linux_ohos=/opt/ohos-sdk/native/llvm/bin/llvm-ar \
+    CXX_aarch64_unknown_linux_ohos=/usr/local/bin/aarch64-unknown-linux-ohos-clang++.sh
+ENV \
+    CC_armv7_unknown_linux_ohos=/usr/local/bin/armv7-unknown-linux-ohos-clang.sh \
+    AR_armv7_unknown_linux_ohos=/opt/ohos-sdk/native/llvm/bin/llvm-ar \
+    CXX_armv7_unknown_linux_ohos=/usr/local/bin/armv7-unknown-linux-ohos-clang++.sh
+ENV \
+    CC_x86_64_unknown_linux_ohos=/usr/local/bin/x86_64-unknown-linux-ohos-clang.sh \
+    AR_x86_64_unknown_linux_ohos=/opt/ohos-sdk/native/llvm/bin/llvm-ar \
+    CXX_x86_64_unknown_linux_ohos=/usr/local/bin/x86_64-unknown-linux-ohos-clang++.sh
+
+ENV RUST_CONFIGURE_ARGS \
+    --enable-profiler \
+    --disable-docs
+
+ENV SCRIPT python3 ../x.py dist --host='' --target $TARGETS
+
+COPY scripts/sccache.sh /scripts/
+RUN sh /scripts/sccache.sh
diff --git a/src/ci/docker/scripts/ohos-sdk.sh b/src/ci/docker/scripts/ohos-sdk.sh
new file mode 100755
index 00000000000..321be2b8697
--- /dev/null
+++ b/src/ci/docker/scripts/ohos-sdk.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+set -ex
+
+URL=https://repo.huaweicloud.com/openharmony/os/4.0-Release/ohos-sdk-windows_linux-public.tar.gz
+
+curl $URL | tar xz -C /tmp ohos-sdk/linux/native-linux-x64-4.0.10.13-Release.zip
+mkdir /opt/ohos-sdk
+cd /opt/ohos-sdk
+unzip -qq /tmp/ohos-sdk/linux/native-linux-x64-4.0.10.13-Release.zip
diff --git a/src/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang++.sh b/src/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang++.sh
new file mode 100755
index 00000000000..5dfb4c72ffe
--- /dev/null
+++ b/src/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang++.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+exec /opt/ohos-sdk/native/llvm/bin/clang++ \
+  -target aarch64-linux-ohos \
+  --sysroot=/opt/ohos-sdk/native/sysroot \
+  -D__MUSL__ \
+  "$@"
diff --git a/src/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang.sh b/src/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang.sh
new file mode 100755
index 00000000000..972e564fffb
--- /dev/null
+++ b/src/ci/docker/scripts/ohos/aarch64-unknown-linux-ohos-clang.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+exec /opt/ohos-sdk/native/llvm/bin/clang \
+  -target aarch64-linux-ohos \
+  --sysroot=/opt/ohos-sdk/native/sysroot \
+  -D__MUSL__ \
+  "$@"
diff --git a/src/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang++.sh b/src/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang++.sh
new file mode 100755
index 00000000000..d8f99b3d0cd
--- /dev/null
+++ b/src/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang++.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+exec /opt/ohos-sdk/native/llvm/bin/clang++ \
+  -target arm-linux-ohos \
+  --sysroot=/opt/ohos-sdk/native/sysroot \
+  -D__MUSL__ \
+  -march=armv7-a \
+  -mfloat-abi=softfp \
+  -mtune=generic-armv7-a \
+  -mthumb \
+  "$@"
diff --git a/src/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang.sh b/src/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang.sh
new file mode 100755
index 00000000000..fe92ec41b78
--- /dev/null
+++ b/src/ci/docker/scripts/ohos/armv7-unknown-linux-ohos-clang.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+exec /opt/ohos-sdk/native/llvm/bin/clang \
+  -target arm-linux-ohos \
+  --sysroot=/opt/ohos-sdk/native/sysroot \
+  -D__MUSL__ \
+  -march=armv7-a \
+  -mfloat-abi=softfp \
+  -mtune=generic-armv7-a \
+  -mthumb \
+  "$@"
diff --git a/src/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang++.sh b/src/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang++.sh
new file mode 100755
index 00000000000..a45df15b1bf
--- /dev/null
+++ b/src/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang++.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+exec /opt/ohos-sdk/native/llvm/bin/clang++ \
+  -target x86_64-linux-ohos \
+  --sysroot=/opt/ohos-sdk/native/sysroot \
+  -D__MUSL__ \
+  "$@"
diff --git a/src/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang.sh b/src/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang.sh
new file mode 100755
index 00000000000..3bf4c5777f1
--- /dev/null
+++ b/src/ci/docker/scripts/ohos/x86_64-unknown-linux-ohos-clang.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+exec /opt/ohos-sdk/native/llvm/bin/clang \
+  -target x86_64-linux-ohos \
+  --sysroot=/opt/ohos-sdk/native/sysroot \
+  -D__MUSL__ \
+  "$@"