blob: 92e41c89f87081b3a48c29c87e174a297a78498a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
From 0f580ec44434651ee30d68656dcdb8e7d91f082b Mon Sep 17 00:00:00 2001
From: Carl Smedstad <carsme@archlinux.org>
Date: Sun, 15 Feb 2026 07:09:45 +0100
Subject: [PATCH] py: Fix _POSIX_C_SOURCE and _XOPEN_SOURCE redefinition with
Python 3.14
Python 3.14's pyconfig.h defines _POSIX_C_SOURCE as 200809L and _XOPEN_SOURCE
as 700, but glibc's features.h now defines them as 202405L and 800
respectively. When C++ standard library headers are included before Python.h,
features.h sets the newer values first, and pyconfig.h's redefinition triggers
a warning that -Werror turns into an error.
Fix by adding -include Python.h to the Python bindings compiler args, ensuring
pyconfig.h is processed first. This causes features.h to see _GNU_SOURCE
(defined by pyconfig.h) and safely #undef the macros before redefining them.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---
src/py/libcamera/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/py/libcamera/meson.build b/src/py/libcamera/meson.build
index b0bd291f..c01f702f 100644
--- a/src/py/libcamera/meson.build
+++ b/src/py/libcamera/meson.build
@@ -55,6 +55,7 @@ pycamera_args = [
'-fvisibility=hidden',
'-Wno-shadow',
'-DPYBIND11_USE_SMART_HOLDER_AS_DEFAULT',
+ '-include', 'Python.h',
]
if meson.is_cross_build()
--
2.53.0
|