Skip to content

Enable fft_small module for CMake builds #52

Enable fft_small module for CMake builds

Enable fft_small module for CMake builds #52

Workflow file for this run

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