Introduce linux-loongarch64

This commit is contained in:
Gleb Popov
2026-05-10 12:47:51 +03:00
parent 4aaaa2c847
commit 175e4d66e2
6 changed files with 1143 additions and 2 deletions
+18
View File
@@ -763,6 +763,24 @@ jobs:
cpython: "yes", cpython: "yes",
cpython_arg: "--host=s390x-ibm-linux-gnu --target=s390x-ibm-linux-gnu", cpython_arg: "--host=s390x-ibm-linux-gnu --target=s390x-ibm-linux-gnu",
} }
# Linux loongarch64 images
- {
image: "linux-loongarch64",
stockfish: "yes",
stockfish_arg: "ARCH=loongarch64",
ninja: "yes",
ninja_arg: "",
openssl: "yes",
openssl_arg: "linux64-loongarch64",
C: "yes",
C_arg: "",
C-Plus-Plus: "yes",
C-Plus-Plus_arg: "",
fmt: "yes",
fmt_arg: "",
cpython: "yes",
cpython_arg: "--host=loongarch64-unknown-linux-gnu --target=loongarch64-unknown-linux-gnu",
}
# Linux mips images # Linux mips images
- { - {
image: "linux-mips", image: "linux-mips",
+4 -2
View File
@@ -43,7 +43,8 @@ STANDARD_IMAGES := android-arm android-arm64 android-x86 android-x86_64 \
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-m68k-uclibc linux-s390x linux-x64-tinycc \ linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-m68k-uclibc linux-s390x linux-x64-tinycc \
linux-armv6 linux-armv6-lts linux-armv6-musl linux-arm64-lts linux-mipsel-lts \ linux-armv6 linux-armv6-lts linux-armv6-musl linux-arm64-lts linux-mipsel-lts \
linux-armv7l-musl linux-armv7 linux-armv7a linux-armv7-lts linux-armv7a-lts linux-x86_64-full \ linux-armv7l-musl linux-armv7 linux-armv7a linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
linux-mips linux-mips-uclibc linux-mips-lts linux-ppc linux-ppc64le linux-ppc64le-lts linux-riscv64 linux-riscv32 linux-xtensa-uclibc \ linux-loongarch64 linux-mips linux-mips-uclibc linux-mips-lts \
linux-ppc linux-ppc64le linux-ppc64le-lts linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
windows-static-x86 windows-static-x64 windows-static-x64-posix windows-armv7 \ windows-static-x86 windows-static-x64 windows-static-x64-posix windows-armv7 \
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix windows-arm64 \ windows-shared-x86 windows-shared-x64 windows-shared-x64-posix windows-arm64 \
bare-armv7emhf-nano_newlib bare-armv7emhf-nano_newlib
@@ -54,7 +55,8 @@ GEN_IMAGES := android-arm android-arm64 \
manylinux_2_28-x64 manylinux_2_34-x64 \ manylinux_2_28-x64 manylinux_2_34-x64 \
manylinux2014-x64 manylinux2014-x86 \ manylinux2014-x64 manylinux2014-x86 \
manylinux2014-aarch64 manylinux_2_28-aarch64 manylinux_2_34-aarch64 linux-arm64-lts \ manylinux2014-aarch64 manylinux_2_28-aarch64 manylinux_2_34-aarch64 linux-arm64-lts \
web-wasm web-wasi web-wasi-emulated-threads web-wasi-threads linux-mips linux-mips-uclibc linux-mips-lts windows-arm64 windows-armv7 \ web-wasm web-wasi web-wasi-emulated-threads web-wasi-threads \
linux-loongarch64 linux-mips linux-mips-uclibc linux-mips-lts windows-arm64 windows-armv7 \
windows-static-x86 windows-static-x64 windows-static-x64-posix \ windows-static-x86 windows-static-x64 windows-static-x64-posix \
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \ windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \
linux-armv7 linux-armv7a linux-armv7l-musl linux-armv7-lts linux-armv7a-lts linux-x86_64-full \ linux-armv7 linux-armv7a linux-armv7l-musl linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
+7
View File
@@ -103,6 +103,7 @@ The dockcross script will execute the given command-line inside the container, a
| dockcross/linux-armv7-lts | ARMv7 | GCC 8.5.0 + Glibc 2.28 | Linux | | dockcross/linux-armv7-lts | ARMv7 | GCC 8.5.0 + Glibc 2.28 | Linux |
| dockcross/linux-armv7a | ARMv7a | GCC | Linux | | dockcross/linux-armv7a | ARMv7a | GCC | Linux |
| dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux | | dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux |
| dockcross/linux-loongarch64 | LoongArch64 | GCC | Linux |
| dockcross/linux-mips | mips | GCC | Linux | | dockcross/linux-mips | mips | GCC | Linux |
| dockcross/linux-mips-uclibc | mips | GCC + uclibc | Linux | | dockcross/linux-mips-uclibc | mips | GCC + uclibc | Linux |
| dockcross/linux-mips-lts | mips | GCC 8.5.0 + Glibc 2.28 | Linux | | dockcross/linux-mips-lts | mips | GCC 8.5.0 + Glibc 2.28 | Linux |
@@ -283,6 +284,12 @@ board PC with TI SoC AM3358 on board, Cortex-A8.
Toolchain configured for ARMv7-L, using Toolchain configured for ARMv7-L, using
[musl](https://www.musl-libc.org/) as base \"libc\". [musl](https://www.musl-libc.org/) as base \"libc\".
### dockcross/linux-loongarch64
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-loongarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-loongarch64)
Generic Linux LoongArch64 cross compiler toolchain.
### dockcross/linux-mips ### dockcross/linux-mips
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mips) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mips)
+43
View File
@@ -0,0 +1,43 @@
ARG ORG=dockcross
FROM ${ORG}/base:latest
LABEL maintainer="Gleb Popov arrowd@FreeBSD.org"
# Crosstool-ng version 2025-09-07
ENV CT_VERSION=crosstool-ng-1.28.0
#include "common.crosstool"
# The cross-compiling emulator
RUN apt-get update \
&& apt-get install -y \
qemu-user \
qemu-user-static \
&& apt-get clean --yes
# The CROSS_TRIPLE is a configured alias of the "loongarch64-unknown-linux-gnu" target.
ENV CROSS_TRIPLE=loongarch64-unknown-linux-gnu
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
ENV PKG_CONFIG_PATH=/usr/lib/loongarch64-unknown-linux-gnu/pkgconfig
# Linux kernel cross compilation variables
ENV PATH=${PATH}:${CROSS_ROOT}/bin
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
ENV ARCH=loongarch64
#include "common.label-and-env"
+20
View File
@@ -0,0 +1,20 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR loongarch64)
set(cross_triple $ENV{CROSS_TRIPLE})
set(cross_root $ENV{CROSS_ROOT})
set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_Fortran_COMPILER $ENV{FC})
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-loongarch64)
File diff suppressed because it is too large Load Diff