diff options
| author | bors <bors@rust-lang.org> | 2023-05-23 07:27:51 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-05-23 07:27:51 +0000 |
| commit | cda5becc27cbc7106646fbc40aacea5e7896d954 (patch) | |
| tree | 21bc75c11a3d10a697288f9677833929b09d8243 | |
| parent | 4400d8fce79ab2a610f05479413397464052e9c0 (diff) | |
| parent | 5f173e979f7dfa5dd4cd5284ad6894d600ba2c43 (diff) | |
| download | rust-cda5becc27cbc7106646fbc40aacea5e7896d954.tar.gz rust-cda5becc27cbc7106646fbc40aacea5e7896d954.zip | |
Auto merge of #110519 - loongarch-rs:ci, r=Mark-Simulacrum
ci: Add support for dist-loongarch64-linux We are preparing to promote loongarch64-unknown-linux-gnu to Tier 2, and one of the tasks is to add CI support. We are currently in the process of upgrading the dependencies for the build tools, and before this is completed, we would like to request comments. Thanks #### Progress - [x] Update linux-raw-sys to 0.3.2 (rust-lang/cargo#11998) - [x] Update openssl-src to 111.25.3+1.1.1t (rust-lang/cargo#12005) - [x] bootstrap: Update linux-raw-sys to 0.3.2 (rust-lang/rust#110516) - [x] Update linux-raw-sys to 0.3.4 (rust-lang/rust#110518) - [x] Update cargo (rust-lang/rust#110834) - [x] linux_like: Add missing constants for loongarch64 (rust-lang/libc#3237) - [x] Release 0.2.143 (rust-lang/libc#3236) - [x] Update libc to 0.2.144 (rust-lang/cargo#12098) - [x] Update cargo (rust-lang/rust#111456) Tier 2 with host tools MCP: https://github.com/rust-lang/compiler-team/issues/518
| -rw-r--r-- | .github/workflows/ci.yml | 3 | ||||
| -rw-r--r-- | src/ci/docker/README.md | 16 | ||||
| -rw-r--r-- | src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile | 30 | ||||
| -rw-r--r-- | src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig | 14 | ||||
| -rw-r--r-- | src/ci/docker/scripts/cross-apt-packages.sh | 1 | ||||
| -rw-r--r-- | src/ci/docker/scripts/crosstool-ng-git.sh | 17 | ||||
| -rw-r--r-- | src/ci/github-actions/ci.yml | 3 |
7 files changed, 84 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d8980fcd1a..b12a0b855e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -201,6 +201,9 @@ jobs: - name: dist-i686-linux os: ubuntu-20.04-8core-32gb env: {} + - name: dist-loongarch64-linux + os: ubuntu-20.04-8core-32gb + env: {} - name: dist-mips-linux os: ubuntu-20.04-8core-32gb env: {} diff --git a/src/ci/docker/README.md b/src/ci/docker/README.md index 5898a21d613..e799d7c9688 100644 --- a/src/ci/docker/README.md +++ b/src/ci/docker/README.md @@ -257,6 +257,22 @@ For targets: `i586-unknown-linux-gnu` (\*) Compressed debug is enabled by default for gas (assembly) on Linux/x86 targets, but that makes our `compiler_builtins` incompatible with binutils < 2.32. +### `loongarch64-linux-gnu.defconfig` + +For targets: `loongarch64-unknown-linux-gnu` + +- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET} +- Path and misc options > Use a mirror = ENABLE +- Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc +- Target options > Target Architecture = loongarch +- Target options > Bitness = 64-bit +- Operating System > Target OS = linux +- Operating System > Linux kernel version = 5.19.16 +- Binary utilities > Version of binutils = 2.40 +- C-library > glibc version = 2.36 +- C compiler > gcc version = 12.2.0 +- C compiler > C++ = ENABLE -- to cross compile LLVM + ### `mips-linux-gnu.defconfig` For targets: `mips-unknown-linux-gnu` diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile new file mode 100644 index 00000000000..78689c429c2 --- /dev/null +++ b/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile @@ -0,0 +1,30 @@ +FROM ubuntu:22.04 + +COPY scripts/cross-apt-packages.sh /scripts/ +RUN sh /scripts/cross-apt-packages.sh + +# The latest released version does not support LoongArch. +COPY scripts/crosstool-ng-git.sh /scripts/ +RUN sh /scripts/crosstool-ng-git.sh + +COPY scripts/rustbuild-setup.sh /scripts/ +RUN sh /scripts/rustbuild-setup.sh +WORKDIR /tmp + +COPY scripts/crosstool-ng-build.sh /scripts/ +COPY host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig /tmp/crosstool.defconfig +RUN /scripts/crosstool-ng-build.sh + +COPY scripts/sccache.sh /scripts/ +RUN sh /scripts/sccache.sh + +ENV PATH=$PATH:/x-tools/loongarch64-unknown-linux-gnu/bin + +ENV CC_loongarch64_unknown_linux_gnu=loongarch64-unknown-linux-gnu-gcc \ + AR_loongarch64_unknown_linux_gnu=loongarch64-unknown-linux-gnu-ar \ + CXX_loongarch64_unknown_linux_gnu=loongarch64-unknown-linux-gnu-g++ + +ENV HOSTS=loongarch64-unknown-linux-gnu + +ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs +ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig new file mode 100644 index 00000000000..576f3631cd5 --- /dev/null +++ b/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig @@ -0,0 +1,14 @@ +CT_CONFIG_VERSION="4" +CT_EXPERIMENTAL=y +CT_PREFIX_DIR="/x-tools/${CT_TARGET}" +CT_USE_MIRROR=y +CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc" +CT_ARCH_LOONGARCH=y +# CT_DEMULTILIB is not set +CT_ARCH_USE_MMU=y +CT_ARCH_ARCH="loongarch64" +CT_KERNEL_LINUX=y +CT_LINUX_V_5_19=y +CT_GLIBC_V_2_36=y +CT_CC_GCC_ENABLE_DEFAULT_PIE=y +CT_CC_LANG_CXX=y diff --git a/src/ci/docker/scripts/cross-apt-packages.sh b/src/ci/docker/scripts/cross-apt-packages.sh index 2f8bf119424..398362ca52f 100644 --- a/src/ci/docker/scripts/cross-apt-packages.sh +++ b/src/ci/docker/scripts/cross-apt-packages.sh @@ -22,6 +22,7 @@ apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install patch \ pkg-config \ python3 \ + rsync \ sudo \ texinfo \ unzip \ diff --git a/src/ci/docker/scripts/crosstool-ng-git.sh b/src/ci/docker/scripts/crosstool-ng-git.sh new file mode 100644 index 00000000000..449cc476f9a --- /dev/null +++ b/src/ci/docker/scripts/crosstool-ng-git.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -ex + +URL=https://github.com/crosstool-ng/crosstool-ng +REV=943364711a650d9b9e84c1b42c91cc0265b6ab5c + +mkdir crosstool-ng +cd crosstool-ng +git init +git fetch --depth=1 ${URL} ${REV} +git reset --hard FETCH_HEAD +./bootstrap +./configure --prefix=/usr/local +make -j$(nproc) +make install +cd .. +rm -rf crosstool-ng diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml index f81e740936b..fd619467fc1 100644 --- a/src/ci/github-actions/ci.yml +++ b/src/ci/github-actions/ci.yml @@ -359,6 +359,9 @@ jobs: - name: dist-i686-linux <<: *job-linux-8c + - name: dist-loongarch64-linux + <<: *job-linux-8c + - name: dist-mips-linux <<: *job-linux-8c |
