git: 011dee72e13f - 2026Q3 - math/gmp: fix build after base cd0727ec709b

Dimitry Andric <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch 2026Q3 has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=011dee72e13fdbd949787c88505fcb62cd52e4d3

commit 011dee72e13fdbd949787c88505fcb62cd52e4d3
Author:     Dimitry Andric <[email protected]>
AuthorDate: 2026-08-15 17:53:23 +0000
Commit:     Dimitry Andric <[email protected]>
CommitDate: 2026-08-17 19:40:28 +0000

    math/gmp: fix build after base cd0727ec709b
    
    After base cd0727ec709bb54f8f82104f6113284a15dd3464 ("libc: Add
    <stdio.h> C23 feature test macro"), math/gmp fails to build with errors
    similar to:
    
      inp_str.c:63:10: warning: call to undeclared function '__gmpz_inp_str_nowhite'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
         63 |   return mpz_inp_str_nowhite (x, stream, base, c, nread);
            |          ^
      ../gmp-impl.h:1782:29: note: expanded from macro 'mpz_inp_str_nowhite'
       1782 | #define mpz_inp_str_nowhite __gmpz_inp_str_nowhite
            |                             ^
      inp_str.c:68:1: error: conflicting types for '__gmpz_inp_str_nowhite'
         68 | mpz_inp_str_nowhite (mpz_ptr x, FILE *stream, int base, int c, size_t nread)
            | ^
      ../gmp-impl.h:1782:29: note: expanded from macro 'mpz_inp_str_nowhite'
       1782 | #define mpz_inp_str_nowhite __gmpz_inp_str_nowhite
            |                             ^
      inp_str.c:63:10: note: previous implicit declaration is here
         63 |   return mpz_inp_str_nowhite (x, stream, base, c, nread);
            |          ^
      ../gmp-impl.h:1782:29: note: expanded from macro 'mpz_inp_str_nowhite'
       1782 | #define mpz_inp_str_nowhite __gmpz_inp_str_nowhite
            |                             ^
      1 warning and 1 error generated.
    
    This is because mpz_inp_str_nowhite() is only declared with the right
    prototype, if _GMP_H_HAVE_FILE is defined. In turn, _GMP_H_HAVE_FILE is
    defined only if _STDIO_H_ is defined, as it used to be in our stdio.h.
    
    Since base cd0727ec709bb54f8f82104f6113284a15dd3464 removed the
    _STDIO_H_ macro, and replaced it with __STDC_VERSION_STDIO_H__ for C23
    support, add it to the list of checks in gmp-h.in, and mini-gmp.h.
    
    Approved by:    portmgr (build fix blanket)
    PR:             297562
    MFH:            2026Q3
    
    (cherry picked from commit 03ce372d3e188c27fe745c974c23dfe42695782d)
---
 math/gmp/files/patch-gmp-h.in            | 12 ++++++++++++
 math/gmp/files/patch-mini-gmp_mini-gmp.h | 12 ++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/math/gmp/files/patch-gmp-h.in b/math/gmp/files/patch-gmp-h.in
new file mode 100644
index 000000000000..a6f34de00548
--- /dev/null
+++ b/math/gmp/files/patch-gmp-h.in
@@ -0,0 +1,12 @@
+--- gmp-h.in.orig	2023-07-29 13:42:16 UTC
++++ gmp-h.in
+@@ -268,7 +268,8 @@ typedef const __gmp_randstate_struct *gmp_randstate_sr
+   || defined (_ISO_STDIO_ISO_H)       /* Sun C++ */		\
+   || defined (__STDIO_LOADED)         /* VMS */			\
+   || defined (_STDIO)                 /* HPE NonStop */         \
+-  || defined (__DEFINED_FILE)         /* musl */
++  || defined (__DEFINED_FILE)         /* musl */                \
++  || defined (__STDC_VERSION_STDIO_H__) /* C23 */
+ #define _GMP_H_HAVE_FILE 1
+ #endif
+ 
diff --git a/math/gmp/files/patch-mini-gmp_mini-gmp.h b/math/gmp/files/patch-mini-gmp_mini-gmp.h
new file mode 100644
index 000000000000..cfd417f4ba4c
--- /dev/null
+++ b/math/gmp/files/patch-mini-gmp_mini-gmp.h
@@ -0,0 +1,12 @@
+--- mini-gmp/mini-gmp.h.orig	2023-07-29 13:42:16 UTC
++++ mini-gmp/mini-gmp.h
+@@ -297,7 +297,8 @@ int mpz_init_set_str (mpz_t, const char *, int);
+   || defined (_ISO_STDIO_ISO_H)       /* Sun C++ */		\
+   || defined (__STDIO_LOADED)         /* VMS */			\
+   || defined (_STDIO)                 /* HPE NonStop */         \
+-  || defined (__DEFINED_FILE)         /* musl */
++  || defined (__DEFINED_FILE)         /* musl */                \
++  || defined (__STDC_VERSION_STDIO_H__) /* C23 */
+ size_t mpz_out_str (FILE *, int, const mpz_t);
+ #endif
+
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.