2026. 03. 23. 14:28 keltezéssel, Bartosz Golaszewski írta:
On Thu, 12 Mar 2026 13:00:24 +0100, "Zoltan Boszormenyi via
lists.openembedded.org" <[email protected]>
said:
One of the main points in the Python 3.14.x release notes was
that free threading is officially supported.
Add PACKAGECONFIG[freethreading] to turn it on with --disable-gil.
GIL is the Global Interpreter Lock, which is kept enabled without
this option.
By default, keep free threading disabled, i.e. GIL enabled.
Signed-off-by: Zoltán Böszörményi <[email protected]>
---
meta/recipes-devtools/python/python3_3.14.3.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/python/python3_3.14.3.bb
b/meta/recipes-devtools/python/python3_3.14.3.bb
index 7047cd8e8d..7a1ad1e386 100644
--- a/meta/recipes-devtools/python/python3_3.14.3.bb
+++ b/meta/recipes-devtools/python/python3_3.14.3.bb
@@ -112,6 +112,7 @@ CACHED_CONFIGUREVARS:append:libc-musl = "\
# PGO currently causes builds to not be reproducible so disable by default,
see YOCTO #13407
PACKAGECONFIG ??= "editline gdbm ${@bb.utils.filter('DISTRO_FEATURES', 'lto',
d)}"
+PACKAGECONFIG[freethreading] = "--disable-gil,--enable-gil"
PACKAGECONFIG[readline] = "--with-readline=readline,,readline,,,editline"
PACKAGECONFIG[editline] = "--with-readline=editline,,libedit,,,readline"
# Use profile guided optimisation by running PyBench inside qemu-user
--
2.53.0
Thanks for doing this, I'm really interested in using free-threaded python on
Yocto. However, when trying to enable this with current openembedded-core, I
ran into the following problem:
Loading cache: 100%
|###############################################################################################################################################################################################################################################################|
Time: 0:00:02
Loaded 5224 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "2.16.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "qemux86-64"
SDKMACHINE = "x86_64"
DISTRO = "poky"
DISTRO_VERSION =
"5.3.99+snapshot-8061433fcd11eba91a29004dfafd175d449fb2fd"
TUNE_FEATURES = "m64 x86-64-v3"
meta = "master:8061433fcd11eba91a29004dfafd175d449fb2fd"
meta-poky = "master:c7fa63bea78248597798739aa4da49a9f4405b9c"
meta-oe
meta-python
meta-networking
meta-filesystems = "master:b883bd25cdd27560fdebc5a4bf56f90e99964c4c"
Sstate summary: Wanted 254 Local 2 Mirrors 0 Missed 252 Current 2392
(0% match, 90%
complete)#############################################################################################################################################################
| ETA: 0:00:00
Initialising tasks: 100%
|##########################################################################################################################################################################################################################################################|
Time: 0:00:05
NOTE: Executing Tasks
ERROR: python3-3.14.3-r0 do_install: oe_multilib_header: Unable to
find header python3.14/pyconfig.h.
ERROR: python3-3.14.3-r0 do_install: Execution of
'/home/brgl/workspace/yocto/python-freethreaded/build/tmp/work/x86-64-v3-poky-linux/python3/3.14.3/temp/run.do_install.2092850'
failed with exit code 1
ERROR: Logfile of failure stored in:
/home/brgl/workspace/yocto/python-freethreaded/build/tmp/work/x86-64-v3-poky-linux/python3/3.14.3/temp/log.do_install.2092850
ERROR: Task
(/home/brgl/workspace/yocto/python-freethreaded/sources/openembedded-core/meta/recipes-devtools/python/python3_3.14.3.bb:do_install)
failed with exit code '1'
NOTE: Tasks Summary: Attempted 4513 tasks of which 4512 didn't need to
be rerun and 1 failed.
Summary: 1 task failed:
/home/brgl/workspace/yocto/python-freethreaded/sources/openembedded-core/meta/recipes-devtools/python/python3_3.14.3.bb:do_install
log:
/home/brgl/workspace/yocto/python-freethreaded/build/tmp/work/x86-64-v3-poky-linux/python3/3.14.3/temp/log.do_install.2092850
Summary: There were 2 ERROR messages, returning a non-zero exit code.
Any hints on what could be wrong? The same config builds fine without the
new option. It's just a core-image-minimal on poky with a few python packages
from meta-openembedded.
The problem is that now the directories are
${libdir}/python3.14t and ${includedir}/python3.14t
Note the "t" suffix.
diff --git a/meta/recipes-devtools/python/python3_3.14.3.bb
b/meta/recipes-devtools/python/python3_3.14.3.bb
index 7a1ad1e386..492f2f93f0 100644
--- a/meta/recipes-devtools/python/python3_3.14.3.bb
+++ b/meta/recipes-devtools/python/python3_3.14.3.bb
@@ -47,7 +47,7 @@ UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
CVE_PRODUCT = "python:python python_software_foundation:python cpython"
-PYTHON_MAJMIN = "3.14"
+PYTHON_MAJMIN = "3.14${@bb.utils.contains('PACKAGECONFIG', 'freethreading', 't',
'', d)}"
S = "${UNPACKDIR}/Python-${PV}"
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#233737):
https://lists.openembedded.org/g/openembedded-core/message/233737
Mute This Topic: https://lists.openembedded.org/mt/118277380/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-