From aaf085fd3523121b6b925fe582e44b3e2cc4dd55 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 19 Jul 2026 16:59:51 +0300 Subject: [PATCH] gh-154136: Define _ISOC23_SOURCE to fix building the math module on FreeBSD Co-Authored-By: Claude Fable 5 --- .../Build/2026-07-19-16-45-00.gh-issue-154136.mathpi.rst | 3 +++ configure | 7 +++++++ configure.ac | 6 ++++++ pyconfig.h.in | 3 +++ 4 files changed, 19 insertions(+) create mode 100644 Misc/NEWS.d/next/Build/2026-07-19-16-45-00.gh-issue-154136.mathpi.rst 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 000000000000000..9bfa313873893a4 --- /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 0fc2b0e819a1209..2dc48c56f837b0a 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 980ed2af50b13f7..991dddf16070274 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 e259eda7439761e..25c4842d25e8a67 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