Enable fft_small module for CMake builds #55
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Slow CI | |
on: | |
pull_request: | |
paths: | |
- 'src/longlong.h' | |
- 'src/fft_small.h' | |
- 'src/machine_vectors.h' | |
- 'src/crt_helpers.h' | |
- 'src/test/*' | |
- 'src/fft_small/test/*' | |
push: | |
branches: | |
- trunk | |
- flint-* | |
concurrency: | |
# group by workflow and ref; the last slightly strange component ensures that for pull | |
# requests, we limit to 1 concurrent job, but for the trunk branch we don't | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/trunk' || github.run_number }} | |
# Cancel intermediate builds, but only if it is a pull request build. | |
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
jobs: | |
############################################################################## | |
# ubuntu, gcc, arm neon through qemu | |
############################################################################## | |
arm-neon-qemu: | |
name: ARM NEON, qemu (subset of tests, x1) | |
runs-on: ubuntu-latest | |
env: | |
FLINT_TEST_MULTIPLIER: "1" | |
CC: "aarch64-linux-gnu-gcc-12" | |
HOST: "aarch64-linux-gnu" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Setup" | |
run: | | |
sudo apt-get install -y \ | |
autoconf \ | |
libtool-bin \ | |
gcc-12-aarch64-linux-gnu \ | |
qemu-user | |
${CC} --version | |
make --version | |
autoconf --version | |
libtool --version | |
echo "MAKE=make -j$(expr $(nproc) + 1) --output-sync=target" >> $GITHUB_ENV | |
- name: "Install GMP and MPFR" | |
run: | | |
mkdir pkg | |
cd pkg | |
wget https://anaconda.org/conda-forge/gmp/6.2.1/download/linux-aarch64/gmp-6.2.1-h7fd3ca4_0.tar.bz2 | |
tar -xf gmp-6.2.1-h7fd3ca4_0.tar.bz2 | |
wget https://anaconda.org/conda-forge/mpfr/4.1.0/download/linux-aarch64/mpfr-4.1.0-h719063d_1.tar.bz2 | |
tar -xf mpfr-4.1.0-h719063d_1.tar.bz2 | |
- name: "Configure" | |
run: | | |
./bootstrap.sh | |
./configure \ | |
--host=${HOST} \ | |
--with-gmp=${GITHUB_WORKSPACE}/pkg \ | |
--with-mpfr=${GITHUB_WORKSPACE}/pkg \ | |
--enable-assert \ | |
--disable-static \ | |
--disable-debug | |
grep -q "define FLINT_HAVE_FFT_SMALL 1" src/config.h | |
- name: "Compile library" | |
run: | | |
$MAKE | |
- name: "Compile tests" | |
run: | | |
# Specifically test longlong.h and fft_small as they contain most of | |
# the architecture specific code, but include some other tests as | |
# well. | |
$MAKE \ | |
build/test/main \ | |
build/fft_small/test/main | |
- name: "Check" | |
run: | | |
# FIXME: Is it possible to run these in parallel without freezing? | |
qemu-aarch64 -L /usr/aarch64-linux-gnu build/test/main | |
qemu-aarch64 -L /usr/aarch64-linux-gnu build/fft_small/test/main |