gh-154136: Define _ISOC23_SOURCE to fix building the math module on FreeBSD (GH-154138)

serhiy-storchaka <[email protected]>
Newsgroups gmane.comp.python.cvs
Message-ID <[email protected]>
https://github.com/python/cpython/commit/44ea9503bff4001c416f96d9bd604daa005106c7
commit: 44ea9503bff4001c416f96d9bd604daa005106c7
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-20T08:00:11+03:00
summary:

gh-154136: Define _ISOC23_SOURCE to fix building the math module on FreeBSD (GH-154138)

Co-authored-by: Claude Fable 5 <[email protected]>

files:
A Misc/NEWS.d/next/Build/2026-07-19-16-45-00.gh-issue-154136.mathpi.rst
M configure
M configure.ac
M pyconfig.h.in

diff --git a/Misc/NEWS.d/next/Build/2026-07-19-16-45-00.gh-issue-154136.mathpi.rst b/Misc/NEWS.d/next/Build/2026-07-19-16-45-00.gh-issue-154136.mathpi.rst
new file mode 100644
index 00000000000000..9bfa313873893a
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2026-07-19-16-45-00.gh-issue-154136.mathpi.rst
@@ -0,0 +1,3 @@
+Fix building the :mod:`math` module on FreeBSD.
+Define ``_ISOC23_SOURCE`` to make the C23 library declarations
+(such as ``sinpi()`` in ``math.h``) visible.
diff --git a/configure b/configure
index b7ba4994b30e70..71fa0b435d1650 100755
--- a/configure
+++ b/configure
@@ -4809,6 +4809,13 @@ printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h
 
 printf "%s\n" "#define _POSIX_C_SOURCE 202405L" >>confdefs.h
 
+
+  # Defining _POSIX_C_SOURCE and _XOPEN_SOURCE hides C23 library
+  # declarations on FreeBSD (e.g. sinpi() in math.h) when compiling
+  # with -std=c11.  Defining _ISOC23_SOURCE makes them visible again.
+
+printf "%s\n" "#define _ISOC23_SOURCE 1" >>confdefs.h
+
 fi
 
 # On HP-UX mbstate_t requires _INCLUDE__STDC_A1_SOURCE
diff --git a/configure.ac b/configure.ac
index 5e98a4f91c8d5e..5fcf406087cbe5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -935,6 +935,12 @@ then
 
   AC_DEFINE([_POSIX_C_SOURCE], [202405L],
             [Define to activate features from IEEE Std 1003.1-2024])
+
+  # Defining _POSIX_C_SOURCE and _XOPEN_SOURCE hides C23 library
+  # declarations on FreeBSD (e.g. sinpi() in math.h) when compiling
+  # with -std=c11.  Defining _ISOC23_SOURCE makes them visible again.
+  AC_DEFINE([_ISOC23_SOURCE], [1],
+            [Define to activate ISO C23 library declarations])
 fi
 
 # On HP-UX mbstate_t requires _INCLUDE__STDC_A1_SOURCE
diff --git a/pyconfig.h.in b/pyconfig.h.in
index e259eda7439761..25c4842d25e8a6 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -2143,6 +2143,9 @@
 /* Define to include mbstate_t for mbrtowc */
 #undef _INCLUDE__STDC_A1_SOURCE
 
+/* Define to activate ISO C23 library declarations */
+#undef _ISOC23_SOURCE
+
 /* This must be defined on some systems to enable large file support. */
 #undef _LARGEFILE_SOURCE
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]
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.