diff --git a/.github/workflows/build-as-subproject.yml b/.github/workflows/build-as-subproject.yml index 777d9cab..144626ce 100644 --- a/.github/workflows/build-as-subproject.yml +++ b/.github/workflows/build-as-subproject.yml @@ -13,7 +13,7 @@ permissions: contents: read env: - GCC_VERSION: "11" + GCC_VERSION: "13" COMMON_CMAKE_FLAGS: > -DSLEEF_SHOW_CONFIG=ON -DSLEEF_BUILD_GNUABI_LIBS=ON diff --git a/.github/workflows/build-examples.yml b/.github/workflows/build-examples.yml index c3274a22..22e68611 100644 --- a/.github/workflows/build-examples.yml +++ b/.github/workflows/build-examples.yml @@ -13,7 +13,7 @@ permissions: contents: read env: - GCC_VERSION: "11" + GCC_VERSION: "13" COMMON_CMAKE_FLAGS: > -DSLEEF_SHOW_CONFIG=ON -DSLEEF_BUILD_GNUABI_LIBS=ON diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 68e51b52..e63bbf64 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -13,7 +13,7 @@ permissions: contents: read env: - GCC_VERSION: "11" + GCC_VERSION: "13" LLVM_VERSION: "17" COMMON_CMAKE_FLAGS: > -DSLEEF_SHOW_CONFIG=1 @@ -54,7 +54,10 @@ jobs: sudo apt-get install -y -qq build-essential cmake curl ninja-build libgmp-dev libmpfr-dev libssl-dev # Needed for llvm builds as well for target libraries + # Use default gcc version on Arm-hosted runners, ie. gcc 11, + # since versions of 12+ are not recent enough on Ubuntu 22.04. - name: Install gcc + if: ${{ matrix.os == 'ubuntu-24.04' }} run: | sudo apt-get install -y -qq gcc-${GCC_VERSION} diff --git a/README.md b/README.md index 202a812e..5d3c5d03 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ LTO is not tested in CI yet, except on Windows. ### Compiler support -Results are displayed for gcc 11 and llvm 17, the compiler versions used in CI tests with GitHub Actions. +Results are displayed for gcc 13 and llvm 17, the compiler versions used in CI tests with GitHub Actions. Older versions should be supported too, while newer ones are either not tested or have known issues. @@ -122,6 +122,8 @@ Only Linux distributions and macOS are fully tested in CI and thus officially su Only AArch64 and x86_64 vector extensions are built and tested natively on Linux and macOS. Other architectures/vector extensions are cross-compiled on Linux. +Native AArch64 tests on Linux are using gcc 11 (default in Ubuntu 22.04), while native x86_64 and cross-compiled tests use gcc 13. + Building SLEEF for Windows on x86 machines was officially supported ( :white_circle: ), as of 3.5.1, however it is only partially tested due to [known limitations of the test suite with MinGW or MSYS2](https://github.com/shibatch/sleef/issues/544). As a result tests for Windows on x86 only include DFT for now (other tests are disabled in build system), diff --git a/toolchains/aarch64-gcc.cmake b/toolchains/aarch64-gcc.cmake index c3594551..d6a66511 100644 --- a/toolchains/aarch64-gcc.cmake +++ b/toolchains/aarch64-gcc.cmake @@ -4,7 +4,17 @@ SET (CMAKE_SYSTEM_PROCESSOR "aarch64") SET(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu /usr/include/aarch64-linux-gnu /usr/lib/aarch64-linux-gnu /lib/aarch64-linux-gnu) -find_program(CMAKE_C_COMPILER NAMES aarch64-linux-gnu-gcc-11 aarch64-linux-gnu-gcc-8 aarch64-linux-gnu-gcc-7 aarch64-linux-gnu-gcc-6 aarch64-linux-gnu-gcc-5 aarch64-linux-gnu-gcc) +find_program(CMAKE_C_COMPILER + NAMES aarch64-linux-gnu-gcc-13 + aarch64-linux-gnu-gcc-12 + aarch64-linux-gnu-gcc-11 + aarch64-linux-gnu-gcc-10 + aarch64-linux-gnu-gcc-9 + aarch64-linux-gnu-gcc-8 + aarch64-linux-gnu-gcc-7 + aarch64-linux-gnu-gcc-6 + aarch64-linux-gnu-gcc-5 + aarch64-linux-gnu-gcc) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) diff --git a/toolchains/armhf-gcc.cmake b/toolchains/armhf-gcc.cmake index 24e160b9..17895d54 100644 --- a/toolchains/armhf-gcc.cmake +++ b/toolchains/armhf-gcc.cmake @@ -4,7 +4,17 @@ SET (CMAKE_SYSTEM_PROCESSOR "armhf") SET(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabihf /usr/include/arm-linux-gnueabihf /usr/lib/arm-linux-gnueabihf) -find_program(CMAKE_C_COMPILER NAMES arm-linux-gnueabihf-gcc-11 arm-linux-gnueabihf-gcc-8 arm-linux-gnueabihf-gcc-7 arm-linux-gnueabihf-gcc-6 arm-linux-gnueabihf-gcc-5 arm-linux-gnueabihf-gcc) +find_program(CMAKE_C_COMPILER + NAMES arm-linux-gnueabihf-gcc-13 + arm-linux-gnueabihf-gcc-12 + arm-linux-gnueabihf-gcc-11 + arm-linux-gnueabihf-gcc-10 + arm-linux-gnueabihf-gcc-9 + arm-linux-gnueabihf-gcc-8 + arm-linux-gnueabihf-gcc-7 + arm-linux-gnueabihf-gcc-6 + arm-linux-gnueabihf-gcc-5 + arm-linux-gnueabihf-gcc) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) diff --git a/toolchains/native-gcc.cmake b/toolchains/native-gcc.cmake index 07ea294d..6249ad91 100644 --- a/toolchains/native-gcc.cmake +++ b/toolchains/native-gcc.cmake @@ -1 +1,11 @@ -find_program(CMAKE_C_COMPILER gcc) +find_program(CMAKE_C_COMPILER + NAMES gcc-13 + gcc-12 + gcc-11 + gcc-10 + gcc-9 + gcc-8 + gcc-7 + gcc-6 + gcc-5 + gcc) diff --git a/toolchains/ppc64el-gcc.cmake b/toolchains/ppc64el-gcc.cmake index 7d6c96ae..467f52bd 100644 --- a/toolchains/ppc64el-gcc.cmake +++ b/toolchains/ppc64el-gcc.cmake @@ -4,7 +4,17 @@ SET (CMAKE_SYSTEM_PROCESSOR "ppc64") SET(CMAKE_FIND_ROOT_PATH /usr/powerpc64le-linux-gnu /usr/include/powerpc64le-linux-gnu /usr/lib/powerpc64le-linux-gnu) -find_program(CMAKE_C_COMPILER NAMES powerpc64le-linux-gnu-gcc-11 powerpc64le-linux-gnu-gcc ppc64el-cc) +find_program(CMAKE_C_COMPILER + NAMES powerpc64le-linux-gnu-gcc-13 + powerpc64le-linux-gnu-gcc-12 + powerpc64le-linux-gnu-gcc-11 + powerpc64le-linux-gnu-gcc-10 + powerpc64le-linux-gnu-gcc-9 + powerpc64le-linux-gnu-gcc-8 + powerpc64le-linux-gnu-gcc-7 + powerpc64le-linux-gnu-gcc-6 + powerpc64le-linux-gnu-gcc-5 + ppc64el-cc) SET(CMAKE_AR /usr/powerpc64le-linux-gnu/bin/ar) diff --git a/toolchains/s390x-gcc.cmake b/toolchains/s390x-gcc.cmake index 4aa9f12c..2bffd2c2 100644 --- a/toolchains/s390x-gcc.cmake +++ b/toolchains/s390x-gcc.cmake @@ -4,7 +4,15 @@ SET (CMAKE_SYSTEM_PROCESSOR "s390x") SET(CMAKE_FIND_ROOT_PATH /usr/s390x-linux-gnu /usr/include/s390x-linux-gnu /usr/lib/s390x-linux-gnu) -find_program(CMAKE_C_COMPILER NAMES s390x-linux-gnu-gcc-11 s390x-linux-gnu-gcc) +find_program(CMAKE_C_COMPILER + NAMES s390x-linux-gnu-gcc-13 + s390x-linux-gnu-gcc-12 + s390x-linux-gnu-gcc-11 + s390x-linux-gnu-gcc-10 + s390x-linux-gnu-gcc-9 + s390x-linux-gnu-gcc-8 + s390x-linux-gnu-gcc-7 + s390x-linux-gnu-gcc) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)