Skip to content

Commit 62b9f2a

Browse files
XiWeiGumr-c
authored andcommitted
gh-actions: Add LoongArch64 build & test
1 parent 11deade commit 62b9f2a

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed

.github/workflows/ci.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -644,3 +644,38 @@ jobs:
644644
run: |
645645
meson --backend=ninja build --cross-file test/arm64cl.txt
646646
meson test -C build --print-errorlogs $(meson test -C build --list | grep -v emul)
647+
648+
linux-gcc-loongarch64:
649+
runs-on: ubuntu-22.04
650+
steps:
651+
- uses: actions/checkout@v3
652+
- name: CPU Information
653+
run: cat /proc/cpuinfo
654+
- name: Install APT Dependencies
655+
run: |
656+
sudo add-apt-repository ppa:savoury1/virtualisation
657+
sudo apt-get install -y ninja-build ninja-build meson qemu-user-static
658+
- name: Download and install loongarch64-toolchain
659+
run: |
660+
wget https://github.com/loongson/build-tools/releases/download/2022.09.06/loongarch64-clfs-7.3-cross-tools-gcc-glibc.tar.xz
661+
tar -xf loongarch64-clfs-7.3-cross-tools-gcc-glibc.tar.xz -C /opt
662+
- name: ccache
663+
uses: hendrikmuhs/ccache-action@v1.2
664+
with:
665+
key: ${{ github.job }}-loongarch64-gcc-13
666+
- name: set env
667+
run: |
668+
echo "LD_LIBRARY_PATH=/opt/cross-tools/target/usr/lib64:/opt/cross-tools/loongarch64-unknown-linux-gnu/lib64:$LD_LIBRARY_PATH" >> $GITHUB_ENV
669+
echo "PATH=$GITHUB_WORKSPACE:/opt/cross-tools/bin:$PATH" >> $GITHUB_ENV
670+
- name: Disable SVML tests
671+
run: |
672+
sed -i "/svml/d" test/x86/meson.build
673+
rm test/x86/svml.c
674+
echo "Due to the qemu versions 7.2 through 8.0 causing timeouts in four sets of test cases,"
675+
echo "the SVML tests have been temporarily disabled."
676+
- name: Configure
677+
run: meson setup build --cross-file=docker/cross-files/loongarch64-gcc-13-ccache.cross
678+
- name: Build
679+
run: meson compile -C build -v
680+
- name: Test
681+
run: meson test -C build --print-errorlogs
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[binaries]
2+
c = ['ccache', 'loongarch64-unknown-linux-gnu-gcc']
3+
cpp = ['ccache', 'loongarch64-unknown-linux-gnu-g++']
4+
ar = 'loongarch64-unknown-linux-gnu-ar'
5+
strip = 'loongarch64-unknown-linux-gnu-strip'
6+
objcopy = 'loongarch64-unknown-linux-gnu-objcopy'
7+
ld = 'loongarch64-unknown-linux-gnu-ld'
8+
exe_wrapper = ['qemu-loongarch64-static', '-L', '/opt/cross-tools/target/usr']
9+
10+
[properties]
11+
c_args = ['-march=loongarch64', '-Wextra', '-Werror']
12+
cpp_args = ['-march=loongarch64', '-Wextra', '-Werror']
13+
14+
[host_machine]
15+
system = 'linux'
16+
cpu_family = 'loongarch64'
17+
cpu = 'loongarch64'
18+
endian = 'little'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[binaries]
2+
c = 'loongarch64-unknown-linux-gnu-gcc'
3+
cpp = 'loongarch64-unknown-linux-gnu-g++'
4+
ar = 'loongarch64-unknown-linux-gnu-ar'
5+
strip = 'loongarch64-unknown-linux-gnu-strip'
6+
objcopy = 'loongarch64-unknown-linux-gnu-objcopy'
7+
ld = 'loongarch64-unknown-linux-gnu-ld'
8+
exe_wrapper = ['qemu-loongarch64-static', '-L', '/opt/cross-tools/target/usr']
9+
10+
[properties]
11+
c_args = ['-march=loongarch64', '-Wextra', '-Werror']
12+
cpp_args = ['-march=loongarch64', '-Wextra', '-Werror']
13+
14+
[host_machine]
15+
system = 'linux'
16+
cpu_family = 'loongarch64'
17+
cpu = 'loongarch64'
18+
endian = 'little'

0 commit comments

Comments
 (0)