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

Message ID 20220824083123.583704-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/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/github-robot: build fail github build: failed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

zhoumin Aug. 24, 2022, 8:31 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          |  9 +++++++++
 .github/workflows/build.yml | 10 +++++++++-
 2 files changed, 18 insertions(+), 1 deletion(-)
  

Patch

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 06104eca22..98cdce27fe 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -78,6 +78,15 @@  if [ "$RISCV64" = "true" ]; then
     cross_file=config/riscv/riscv64_linux_gcc
 fi
 
+if [ "$LOONGARCH64" = "true" ]; then
+	cross_tools_dir="/tmp/loongarch64-cross-tools"
+	rm -rf $cross_tools_dir
+	mkdir $cross_tools_dir
+	tar -xf /tmp/loongarch64-clfs-5.1-cross-tools-gcc-glibc.tar.xz -C $cross_tools_dir --strip-components 1
+	export PATH=$PATH:$cross_tools_dir/bin
+	cross_file=config/loongarch/loongarch_loongarch64_linux_gcc
+fi
+
 if [ -n "$cross_file" ]; then
     OPTS="$OPTS --cross-file $cross_file"
 fi
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6f04e7071c..14ec66437d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -27,6 +27,7 @@  jobs:
       PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
       REF_GIT_TAG: none
       RISCV64: ${{ matrix.config.cross == 'riscv64' }}
+      LOONGARCH64: ${{ matrix.config.cross == 'loongarch64' }}
       RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
 
     strategy:
@@ -79,6 +80,10 @@  jobs:
             compiler: gcc
             library: shared
             cross: riscv64
+          - os: ubuntu-20.04
+            compiler: gcc
+            library: shared
+            cross: loongarch64
 
     steps:
     - name: Checkout sources
@@ -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