public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
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}"




  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