[Python-checkins] gh-91782: Define static_assert() macro on FreeBSD (#91787)

vstinner webhook-mailer at python.org
Thu Apr 21 10:40:44 EDT 2022


https://github.com/python/cpython/commit/1b184c84082530f35c593cb7728752e258371c30
commit: 1b184c84082530f35c593cb7728752e258371c30
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2022-04-21T16:40:34+02:00
summary:

gh-91782: Define static_assert() macro on FreeBSD (#91787)

On FreeBSD, if the static_assert() macro is not defined, define it in
Python until <sys/cdefs.h> supports C11:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255290

files:
M Include/pymacro.h

diff --git a/Include/pymacro.h b/Include/pymacro.h
index 2728496976de7..71d6714afd112 100644
--- a/Include/pymacro.h
+++ b/Include/pymacro.h
@@ -1,6 +1,15 @@
 #ifndef Py_PYMACRO_H
 #define Py_PYMACRO_H
 
+// gh-91782: On FreeBSD 12, if the _POSIX_C_SOURCE and _XOPEN_SOURCE macros are
+// defined, <sys/cdefs.h> disables C11 support and <assert.h> does not define
+// the static_assert() macro. Define the static_assert() macro in Python until
+// <sys/cdefs.h> suports C11:
+// https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255290
+#if defined(__FreeBSD__) && !defined(static_assert)
+#  define static_assert _Static_assert
+#endif
+
 /* Minimum value between x and y */
 #define Py_MIN(x, y) (((x) > (y)) ? (y) : (x))
 



More information about the Python-checkins mailing list