[v6,7/7] ci: add LOONGARCH64 cross compilation job

Message ID 20220827085908.52080-8-zhoumin@loongson.cn (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series Introduce support for LoongArch architecture |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/github-robot: build fail github build: failed
ci/intel-Testing success Testing PASS

Commit Message

zhoumin Aug. 27, 2022, 8:59 a.m. UTC
  Checks cross-compilation using Ubuntu 20.04 x86 for LoongArch.

Signed-off-by: Min Zhou <zhoumin@loongson.cn>
---
 .ci/linux-build.sh          | 10 ++++++++++
 .github/workflows/build.yml | 10 +++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)
  

Patch

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 06104eca22..256cf9c400 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -66,6 +66,16 @@  if [ "$AARCH64" = "true" ]; then
     fi
 fi
 
+if [ "$LOONGARCH64" = "true" ]; then
+	cross_tools_tar="/tmp/loongarch64-clfs-5.1-cross-tools-gcc-glibc.tar.xz"
+	cross_tools_dir="/tmp/loongarch64-cross-tools"
+	rm -rf $cross_tools_dir
+	mkdir $cross_tools_dir
+	tar -xf $cross_tools_tar -C $cross_tools_dir --strip-components 1
+	export PATH=$PATH:$cross_tools_dir/bin
+	cross_file=config/loongarch/loongarch_loongarch64_linux_gcc
+fi
+
 if [ "$MINGW" = "true" ]; then
     cross_file=config/x86/cross-mingw
 fi
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index bf17d2b278..28c7906ecb 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -22,6 +22,7 @@  jobs:
       CC: ccache ${{ matrix.config.compiler }}
       DEF_LIB: ${{ matrix.config.library }}
       LIBABIGAIL_VERSION: libabigail-1.8
+      LOONGARCH64: ${{ matrix.config.cross == 'loongarch64' }}
       MINGW: ${{ matrix.config.cross == 'mingw' }}
       MINI: ${{ matrix.config.mini != '' }}
       PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
@@ -67,6 +68,10 @@  jobs:
             compiler: gcc
             library: shared
             cross: aarch64
+          - os: ubuntu-20.04
+            compiler: gcc
+            library: shared
+            cross: loongarch64
           - os: ubuntu-20.04
             compiler: gcc
             library: static
@@ -118,7 +123,7 @@  jobs:
       run: sudo apt install -y ccache libnuma-dev python3-setuptools
         python3-wheel python3-pip python3-pyelftools ninja-build libbsd-dev
         libpcap-dev libibverbs-dev libcrypto++-dev libfdt-dev libjansson-dev
-        libarchive-dev
+        libarchive-dev wget
     - name: Install libabigail build dependencies if no cache is available
       if: env.ABI_CHECKS == 'true' && steps.libabigail-cache.outputs.cache-hit != 'true'
       run: sudo apt install -y autoconf automake libtool pkg-config libxml2-dev
@@ -138,6 +143,9 @@  jobs:
     - name: Install riscv64 cross compiling packages
       if: env.RISCV64 == 'true'
       run: sudo apt install -y crossbuild-essential-riscv64
+    - name: Install loongarch64 cross compiling packages
+      if: env.LOONGARCH64 == 'true'
+      run: sudo wget -P /tmp/ https://github.com/loongson/build-tools/releases/download/2022.08.11/loongarch64-clfs-5.1-cross-tools-gcc-glibc.tar.xz
     - name: Install test tools packages
       if: env.AARCH64 != 'true' || env.PPC64LE != 'true' || env.RISCV64 != 'true' || env.RUN_TESTS == 'true'
       run: sudo apt install -y gdb jq