From 8663b2a75d69aa241f86dd6e813232343a05b609 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 29 Apr 2025 21:26:25 +0100 Subject: [PATCH 1/1] gmp gcc15 patch https://gmplib.org/list-archives/gmp-devel/2025-January/006279.html Signed-off-by: Leah Rowe --- ...include.m4-fix-std-c23-build-failure.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 util/crossgcc/patches/gmp-6.1.2_acinclude.m4-fix-std-c23-build-failure.patch diff --git a/util/crossgcc/patches/gmp-6.1.2_acinclude.m4-fix-std-c23-build-failure.patch b/util/crossgcc/patches/gmp-6.1.2_acinclude.m4-fix-std-c23-build-failure.patch new file mode 100644 index 0000000000..adb66c6043 --- /dev/null +++ b/util/crossgcc/patches/gmp-6.1.2_acinclude.m4-fix-std-c23-build-failure.patch @@ -0,0 +1,43 @@ +From 7d4aa08224b53054754b8ee6fd61a4297ac47119 Mon Sep 17 00:00:00 2001 +From: Rudi Heitbaum +Date: Wed, 22 Jan 2025 02:34:09 +0100 +Subject: [PATCH 1/1] acinclude.m4: fix -std=c23 build failure + +Add prototype to configure test function as c23 removes unprototyped +functions. + +gcc-15 switched to -std=c23 by default: + + https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=55e3bd376b2214e200fa76d12b67ff259b06c212 + +As a result `configure` fails with: + conftest.c: In function 'f': + conftest.c:12:48: error: too many arguments to function 'g'; expected 0, have 6 + 12 | for(i=0;i<1;i++){if(e(got,got,9,d[i].n)==0)h();g(i,d[i].src,d[i].n,got,d[i].want,9);if(d[i].n)h();}} + | ^ ~ + conftest.c:7:6: note: declared here + 7 | void g(){} + | ^ + +Link: https://gmplib.org/list-archives/gmp-bugs/2024-November/005550.html +Signed-off-by: Rudi Heitbaum +--- + acinclude.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 3c3ecf5..3a226fd 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -609,7 +609,7 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1], + + #if defined (__GNUC__) && ! defined (__cplusplus) + typedef unsigned long long t1;typedef t1*t2; +-void g(){} ++void g(int,const t1 *,t1,t1 *,const t1 *,int){} + void h(){} + static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) + {t1 c,x,r;int i;if(v0){c=1;for(i=1;i