From: "Böszörményi Zoltán" <zboszor@gmail.com>
To: Bartosz Golaszewski <brgl@kernel.org>
Cc: "Zoltan Boszormenyi via lists.openembedded.org"
<zboszor=gmail.com@lists.openembedded.org>,
Alexander Kanavin <alex.kanavin@gmail.com>,
openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH v2] python3: Add a new PACKAGECONFIG knob for free threading
Date: Mon, 23 Mar 2026 15:23:52 +0100 [thread overview]
Message-ID: <c0ef676d-27c6-4db4-9fa0-06a78c38954e@gmail.com> (raw)
In-Reply-To: <CAMRc=MeFZMGjW-KXngLwq3kjbA9ic4KaOaPjhPd4Be0DMJ+yTg@mail.gmail.com>
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" <zboszor=gmail.com@lists.openembedded.org>
> 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 <zboszor@gmail.com>
>> ---
>> 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}"
next prev parent reply other threads:[~2026-03-23 14:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 12:00 [PATCH v2] python3: Add a new PACKAGECONFIG knob for free threading Zoltán Böszörményi
2026-03-23 13:28 ` [OE-core] " Bartosz Golaszewski
2026-03-23 13:35 ` Alexander Kanavin
2026-03-23 13:48 ` Bartosz Golaszewski
2026-03-23 14:04 ` Alexander Kanavin
2026-03-23 14:05 ` Bartosz Golaszewski
2026-03-23 14:23 ` Böszörményi Zoltán [this message]
2026-03-23 14:34 ` Bartosz Golaszewski
2026-03-23 14:40 ` Böszörményi Zoltán
2026-03-23 14:45 ` Bartosz Golaszewski
2026-03-23 14:54 ` Böszörményi Zoltán
2026-03-23 14:47 ` Alexander Kanavin
2026-03-23 14:52 ` Böszörményi Zoltán
2026-03-23 15:03 ` Trevor Gamblin
2026-03-23 17:23 ` Böszörményi Zoltán
2026-03-24 8:46 ` Bartosz Golaszewski
2026-03-25 12:26 ` Böszörményi Zoltán
[not found] ` <189F7F6305FFFD56.3195838@lists.openembedded.org>
2026-03-23 14:49 ` Böszörményi Zoltán
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c0ef676d-27c6-4db4-9fa0-06a78c38954e@gmail.com \
--to=zboszor@gmail.com \
--cc=alex.kanavin@gmail.com \
--cc=brgl@kernel.org \
--cc=openembedded-core@lists.openembedded.org \
--cc=zboszor=gmail.com@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox