ci: Add support for dist-loongarch64-linux
Co-Authored-By: YANG Xiaojuan <yangxiaojuan@loongson.cn>
This commit is contained in:
parent
0b795044c6
commit
5f173e979f
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@ -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: {}
|
||||
|
@ -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`
|
||||
|
30
src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile
Normal file
30
src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile
Normal file
@ -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
|
@ -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
|
@ -22,6 +22,7 @@ apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install
|
||||
patch \
|
||||
pkg-config \
|
||||
python3 \
|
||||
rsync \
|
||||
sudo \
|
||||
texinfo \
|
||||
unzip \
|
||||
|
17
src/ci/docker/scripts/crosstool-ng-git.sh
Normal file
17
src/ci/docker/scripts/crosstool-ng-git.sh
Normal file
@ -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
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user