From: Mika Lindqvist Date: Wed, 31 May 2023 07:19:05 +0000 (+0300) Subject: Add MIPS64 to GitHub workflows. X-Git-Tag: 2.1.2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5fe0c3a01f69574b4ff1a5112f63a91d53a88324;p=thirdparty%2Fzlib-ng.git Add MIPS64 to GitHub workflows. --- diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 36f138f60..f16ab99c7 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -198,6 +198,12 @@ jobs: packages: qemu qemu-user gcc-mips-linux-gnu g++-mips-linux-gnu libc-dev-mips-cross codecov: ubuntu_gcc_mips + - name: Ubuntu GCC MIPS64 + os: ubuntu-latest + cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips64.cmake + packages: qemu qemu-user gcc-mips64-linux-gnuabi64 g++-mips64-linux-gnuabi64 libc-dev-mips64-cross + codecov: ubuntu_gcc_mips64 + - name: Ubuntu GCC PPC os: ubuntu-latest cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake diff --git a/.github/workflows/configure.yml b/.github/workflows/configure.yml index 4b831917f..02a36005f 100644 --- a/.github/workflows/configure.yml +++ b/.github/workflows/configure.yml @@ -107,6 +107,13 @@ jobs: chost: mips-linux-gnu packages: qemu qemu-user gcc-mips-linux-gnu libc-dev-mips-cross + - name: Ubuntu GCC MIPS64 + os: ubuntu-latest + compiler: mips64-linux-gnuabi64-gcc + configure-args: --warn + chost: mips64-linux-gnuabi64 + packages: qemu qemu-user gcc-mips64-linux-gnuabi64 libc-dev-mips64-cross + - name: Ubuntu GCC PPC os: ubuntu-latest compiler: powerpc-linux-gnu-gcc diff --git a/cmake/toolchain-mips64.cmake b/cmake/toolchain-mips64.cmake new file mode 100644 index 000000000..8ef3b6b00 --- /dev/null +++ b/cmake/toolchain-mips64.cmake @@ -0,0 +1,29 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR mips64) +set(CMAKE_SYSTEM_VERSION 1) + +if(NOT DEFINED CMAKE_C_COMPILER_TARGET) + set(CMAKE_C_COMPILER_TARGET mips64-linux-gnuabi64) +endif() +if(NOT DEFINED CMAKE_CXX_COMPILER_TARGET) + set(CMAKE_CXX_COMPILER_TARGET mips64-linux-gnuabi64) +endif() + +set(CMAKE_CROSSCOMPILING TRUE) +set(CMAKE_CROSSCOMPILING_EMULATOR qemu-mips64 -L /usr/${CMAKE_C_COMPILER_TARGET}/) + +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_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +find_program(C_COMPILER_FULL_PATH NAMES ${CMAKE_C_COMPILER_TARGET}-gcc) +if(NOT C_COMPILER_FULL_PATH) + message(FATAL_ERROR "Cross-compiler for ${CMAKE_C_COMPILER_TARGET} not found") +endif() +set(CMAKE_C_COMPILER ${C_COMPILER_FULL_PATH}) + +find_program(CXX_COMPILER_FULL_PATH NAMES g++-${CMAKE_CXX_COMPILER_TARGET} ${CMAKE_CXX_COMPILER_TARGET}-g++) +if(CXX_COMPILER_FULL_PATH) + set(CMAKE_CXX_COMPILER ${CXX_COMPILER_FULL_PATH}) +endif()