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]

Reply via email to