github actions: use an x86 binary for building under qemu

3x faster than a target-specific binary.
This commit is contained in:
Stas Boukarev 2026-02-23 09:27:43 +03:00
parent a90f58b46f
commit aa4f8aebeb
3 changed files with 27 additions and 39 deletions

View file

@ -3,58 +3,42 @@ name: Linux qemu
on: [push] on: [push]
jobs: jobs:
ppc64le: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: ppc64le strategy:
matrix:
arch: [ppc64le, riscv64]
fail-fast: false
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: echo "\"`git rev-parse HEAD`\"" > version.lisp-expr - name: install host sbcl
run: |
echo "\"`git rev-parse HEAD`\"" > version.lisp-expr
cd tests; git clone --depth 1 https://github.com/sbcl/ansi-test.git
- uses: uraimo/run-on-arch-action@v3 - uses: uraimo/run-on-arch-action@v3
name: Run commands name: Run commands
id: runcmd id: runcmd
with: with:
arch: none arch: none
distro: none distro: none
base_image: --platform=linux/ppc64le debian:trixie base_image: --platform=linux/${{ matrix.arch }} debian:trixie
githubToken: ${{ github.token }} githubToken: ${{ github.token }}
install: | install: |
dpkg --add-architecture amd64
apt-get -qq update | true apt-get -qq update | true
apt-get -qq install sbcl libzstd-dev build-essential apt-get -qq install libzstd-dev build-essential curl libc6:amd64
curl -O -L https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/sbcl-2.4.8-x86-64-linux-binary.tar.bz2
tar xf sbcl-2.4.8-x86-64-linux-binary.tar.bz2
cd sbcl-2.4.8-x86-64-linux/
./install.sh
useradd -u 1001 -m dtest
run: | run: |
export SBCL_MAKE_TARGET_2_OPTIONS="--disable-ldb --disable-debugger" export SBCL_MAKE_TARGET_2_OPTIONS="--disable-ldb --disable-debugger"
export SBCL_MAKE_JOBS=-j4 export SBCL_MAKE_JOBS=-j4
./make.sh --with-sb-core-compression --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger' ./make.sh --with-sb-core-compression --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger'
cd tests cd tests
#./run-tests.sh --slow #./run-tests.sh --slow
# ./ansi-tests.sh ./ansi-tests.sh
riscv64:
runs-on: ubuntu-latest
name: riscv64
steps:
- uses: actions/checkout@v4
- name: download sbcl
run: |
curl -O -L https://github.com/sbcl/sbcl/releases/download/sbcl-1.4.14/sbcl-riscv-261x.tar.gz
tar xf sbcl-riscv-261x.tar.gz
echo "\"`git rev-parse HEAD`\"" > version.lisp-expr
- uses: uraimo/run-on-arch-action@v3
name: Run commands
id: runcmd
with:
arch: none
distro: none
base_image: --platform=linux/riscv64 debian:trixie
githubToken: ${{ github.token }}
install: |
apt-get -qq update | true
apt-get -qq install libzstd-dev build-essential
run: |
(cd sbcl; ./install.sh)
export SBCL_MAKE_TARGET_2_OPTIONS="--disable-ldb --disable-debugger"
export SBCL_MAKE_JOBS=-j4
./make.sh --with-sb-core-compression --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger'
#cd tests
#./run-tests.sh --slow
# ./ansi-tests.sh

View file

@ -158,9 +158,12 @@ sets the floating point modes to their current values (and thus is a no-op)."
;;; disabled by default. Joe User can explicitly enable them if ;;; disabled by default. Joe User can explicitly enable them if
;;; desired. ;;; desired.
(define-load-time-global *saved-floating-point-modes* (define-load-time-global *saved-floating-point-modes*
'(:traps (#-(and arm64 win32) :overflow '(:traps
#-(or netbsd ppc (and arm64 win32)) :invalid #-riscv
#-(and arm64 win32) :divide-by-zero) (#-(and arm64 win32) :overflow
#-(or netbsd ppc (and arm64 win32)) :invalid
#-(and arm64 win32) :divide-by-zero)
#+riscv nil
:rounding-mode :nearest :current-exceptions nil :rounding-mode :nearest :current-exceptions nil
:accrued-exceptions nil :fast-mode nil :accrued-exceptions nil :fast-mode nil
#+x86 :precision #+x86 :53-bit)) #+x86 :precision #+x86 :53-bit))

View file

@ -58,9 +58,10 @@ rm -fr sandbox/scratch
"SUBSTITUTE.FOLD.1" "SUBSTITUTE-IF-NOT.FOLD.3" "SUBSTITUTE.FOLD.1" "SUBSTITUTE-IF-NOT.FOLD.3"
"MISC.598" "IMAGPART.4" "MISC.598" "IMAGPART.4"
(append #+x86 (list "CIS.4") (append #+x86 (list "CIS.4")
#+(or arm (and arm64 (not darwin))) #+(or arm riscv (and arm64 (not darwin)))
(list "EXP.ERROR.4" "EXP.ERROR.5" "EXP.ERROR.6" "EXP.ERROR.7" "EXPT.ERROR.4" (list "EXP.ERROR.4" "EXP.ERROR.5" "EXP.ERROR.6" "EXP.ERROR.7" "EXPT.ERROR.4"
"EXPT.ERROR.5" "EXPT.ERROR.6" "EXPT.ERROR.7") "EXPT.ERROR.5" "EXPT.ERROR.6" "EXPT.ERROR.7")
#+(or riscv loongarch64) (list "LOOP.13.8")
#-sb-unicode (list "MISC.638") #-sb-unicode (list "MISC.638")
(if (member :sb-fasteval sb-impl:+internal-features+) (if (member :sb-fasteval sb-impl:+internal-features+)
(list "INTERSECTION.FOLD.1" "UNION.FOLD.1" "SET-DIFFERENCE.FOLD.1" (list "INTERSECTION.FOLD.1" "UNION.FOLD.1" "SET-DIFFERENCE.FOLD.1"