-
Notifications
You must be signed in to change notification settings - Fork 103
151 lines (147 loc) · 5.83 KB
/
Copy pathactions.yml
File metadata and controls
151 lines (147 loc) · 5.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: Actions
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build-test-on-arches-with-qemu:
name: Build and test on ${{ matrix.arch.name }}
strategy:
fail-fast: false
matrix:
arch:
- name: armt2
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--stable-2024.05-1.tar.xz
name: armv7-eabihf--glibc--stable-2024.05-1.tar.xz
CC: arm-buildroot-linux-gnueabihf-gcc-13.3.0.br_real
CFLAGS: -mthumb
qemu:
target: arm-linux-user
name: qemu-arm
- name: armv7
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--stable-2024.05-1.tar.xz
name: armv7-eabihf--glibc--stable-2024.05-1.tar.xz
CC: arm-buildroot-linux-gnueabihf-gcc-13.3.0.br_real
CFLAGS: -marm
qemu:
target: arm-linux-user
name: qemu-arm
- name: aarch64
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--glibc--stable-2024.05-1.tar.xz
name: aarch64--glibc--stable-2024.05-1.tar.xz
CC: aarch64-buildroot-linux-gnu-gcc-13.3.0.br_real
qemu:
target: aarch64-linux-user
name: qemu-aarch64
- name: riscv64 with extensions
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64-lp64d/tarballs/riscv64-lp64d--glibc--stable-2024.05-1.tar.xz
name: riscv64-lp64d--glibc--stable-2024.05-1.tar.xz
CC: riscv64-buildroot-linux-gnu-gcc-13.3.0.br_real
CFLAGS: -march=rv64gv_zba_zbb_zicond
qemu:
target: riscv64-linux-user
name: qemu-riscv64
- name: riscv64
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/riscv64-lp64d/tarballs/riscv64-lp64d--glibc--stable-2024.05-1.tar.xz
name: riscv64-lp64d--glibc--stable-2024.05-1.tar.xz
CC: riscv64-buildroot-linux-gnu-gcc-13.3.0.br_real
CFLAGS: -march=rv64g
qemu:
target: riscv64-linux-user
name: qemu-riscv64
- name: riscv32 with extensions
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/riscv32-ilp32d/tarballs/riscv32-ilp32d--glibc--stable-2024.05-1.tar.xz
name: riscv32-ilp32d--glibc--stable-2024.05-1.tar.xz
CC: riscv32-buildroot-linux-gnu-gcc-13.3.0.br_real
CFLAGS: -march=rv32gcv_zba_zbb_zicond
qemu:
target: riscv32-linux-user
name: qemu-riscv32
- name: riscv32
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/riscv32-ilp32d/tarballs/riscv32-ilp32d--glibc--stable-2024.05-1.tar.xz
name: riscv32-ilp32d--glibc--stable-2024.05-1.tar.xz
CC: riscv32-buildroot-linux-gnu-gcc-13.3.0.br_real
CFLAGS: -march=rv32g
qemu:
target: riscv32-linux-user
name: qemu-riscv32
- name: loongarch64
toolchain:
url: https://github.com/loongson/build-tools/releases/download/2025.02.21/x86_64-cross-tools-loongarch64-binutils_2.44-gcc_14.2.0-glibc_2.41.tar.xz
name: x86_64-cross-tools-loongarch64-binutils_2.44-gcc_14.2.0-glibc_2.41.tar.xz
CC: loongarch64-unknown-linux-gnu-gcc-14.2.0
CFLAGS: -march=la464
qemu:
target: loongarch64-linux-user
name: qemu-loongarch64
- name: s390x
toolchain:
url: https://toolchains.bootlin.com/downloads/releases/toolchains/s390x-z13/tarballs/s390x-z13--glibc--stable-2024.05-1.tar.xz
name: s390x-z13--glibc--stable-2024.05-1.tar.xz
CC: s390x-buildroot-linux-gnu-gcc-13.3.0.br_real
qemu:
target: s390x-linux-user
name: qemu-s390x
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install compiler
run: |
sudo apt update
sudo apt install -y make wget gcc g++ ninja-build libglib2.0-dev
wget ${{ matrix.arch.toolchain.url }}
mkdir toolchain
tar -xvf ${{ matrix.arch.toolchain.name }} -C toolchain --strip-components=1
- name: Install qemu
run: |
wget https://download.qemu.org/qemu-9.0.2.tar.xz
tar -xvf qemu-9.0.2.tar.xz
cd qemu-9.0.2
./configure --target-list="${{ matrix.arch.qemu.target }}"
make -j4
- name: Build
env:
CROSS_COMPILER: ./toolchain/bin/${{ matrix.arch.toolchain.CC }}
CFLAGS: ${{ matrix.arch.toolchain.CFLAGS }}
EXTRA_LDFLAGS: -static
run: |
make all
- name: Run tests
run: |
./qemu-9.0.2/build/${{ matrix.arch.qemu.name }} ./bin/sljit_test -v
build-test-on-x86_x64:
strategy:
fail-fast: false
matrix:
arch:
- name: x86
CFLAGS: -m32
- name: x64
name: Build and test on ${{ matrix.arch.name }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Packages
run: |
sudo apt update
sudo apt install -y gcc-multilib make
- name: Build
env:
CFLAGS: ${{ matrix.arch.CFLAGS }}
run: |
make all
- name: Run Tests
run: |
./bin/sljit_test -v