diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b6bacac4..96531252 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: runs-on: ah-ubuntu_24_04-c7g_4x-50 strategy: matrix: - compiler: ["gcc", "clang-20"] + compiler: ["gcc-16", "clang-22"] steps: - uses: actions/checkout@v4 @@ -21,9 +21,15 @@ jobs: - name: update package cache run: sudo apt-get update - name: install dependencies - run: sudo apt-get install -y libmpfr-dev libmpc-dev wget + run: sudo apt-get install -y libmpfr-dev libmpc-dev wget software-properties-common + - name: install test PPA + run: sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + - name: update package cache (again) + run: sudo apt-get update - name: install clang - run: wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 20 + run: wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 22 + - name: install GCC + run: sudo apt install -y gcc-16 g++-16 - name: configure run: cp config.mk.dist config.mk - name: make @@ -34,7 +40,7 @@ jobs: run: CC="${{ matrix.compiler }}" make prefix=$(pwd)/install install linux-x86-64-cross: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: matrix: compiler: ["aarch64-linux-gnu-gcc"] @@ -46,7 +52,7 @@ jobs: - name: update package cache run: sudo apt-get update - name: install dependencies - run: sudo apt-get install -y libmpfr-dev libmpc-dev gcc-aarch64-linux-gnu qemu-user-static + run: sudo apt-get install -y libmpfr-dev libmpc-dev gcc-aarch64-linux-gnu qemu-user-binfmt - name: configure run: cp config.mk.dist config.mk - name: make diff --git a/config.mk.dist b/config.mk.dist index 11a0c643..88412f60 100644 --- a/config.mk.dist +++ b/config.mk.dist @@ -17,6 +17,14 @@ CC ?= $(CROSS_COMPILE)gcc CFLAGS = -std=c99 -pipe -O3 CFLAGS += -Wall -Wno-missing-braces -Werror -Wno-error=cpp -Wno-error=unused-function +CC_MAJOR := $(shell $(CC) -dumpfullversion -dumpversion 2>/dev/null \ + | sed 's/\..*//') +ifneq (,$(findstring gcc,$(notdir $(CC)))) +ifeq ($(shell [ "$(CC_MAJOR)" -ge 16 ] 2>/dev/null && echo 1),1) + CFLAGS += -Wno-error=restrict +endif +endif + # Used for test case generator that is executed on the host HOST_CC ?= gcc HOST_CFLAGS = -std=c99 -O2 diff --git a/math/test/testcases/directed/asinh.tst b/math/test/testcases/directed/asinh.tst index 9b250a14..099f348d 100644 --- a/math/test/testcases/directed/asinh.tst +++ b/math/test/testcases/directed/asinh.tst @@ -14,5 +14,5 @@ func=asinh op1=80000000.00000000 result=80000000.00000000 errno=0 ; No exception is raised with certain versions of glibc. Functions ; approximated by x near zero may not generate/implement flops and ; thus may not raise exceptions. -func=asinh op1=00000000.00000001 result=00000000.00000001 errno=0 maybestatus=ux -func=asinh op1=80000000.00000001 result=80000000.00000001 errno=0 maybestatus=ux +func=asinh op1=00000000.00000001 result=00000000.00000001 errno=0 maybestatus=ux maybeerror=underflow +func=asinh op1=80000000.00000001 result=80000000.00000001 errno=0 maybestatus=ux maybeerror=underflow diff --git a/math/test/testcases/directed/atanh.tst b/math/test/testcases/directed/atanh.tst index 7ba297e5..52faf026 100644 --- a/math/test/testcases/directed/atanh.tst +++ b/math/test/testcases/directed/atanh.tst @@ -18,5 +18,5 @@ func=atanh op1=80000000.00000000 result=80000000.00000000 errno=0 ; No exception is raised with certain versions of glibc. Functions ; approximated by x near zero may not generate/implement flops and ; thus may not raise exceptions. -func=atanh op1=00000000.00000001 result=00000000.00000001 errno=0 maybestatus=ux -func=atanh op1=80000000.00000001 result=80000000.00000001 errno=0 maybestatus=ux +func=atanh op1=00000000.00000001 result=00000000.00000001 errno=0 maybestatus=ux maybeerror=underflow +func=atanh op1=80000000.00000001 result=80000000.00000001 errno=0 maybestatus=ux maybeerror=underflow