]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
python3: Increase default thread stack size on musl
authorKhem Raj <raj.khem@gmail.com>
Sun, 27 Aug 2023 00:27:46 +0000 (17:27 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 30 Aug 2023 08:56:10 +0000 (09:56 +0100)
default stack size for threads is approx 140k on musl which is fine in
most cases but some of python apps e.g. python3-lz4 bindings run into
thread stack size overflow. Increase the default size to 2M on musl,
glibc defaults to 8M, so we are good there.

This default stack size change is limited to interpreter and stdlib
modules only, thats why CFLAGS_NODIST instead of CFLAGS

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/python/python3_3.11.4.bb

index 8fd1382caa4c72f2f9e2f5c6ca47150c0b06af2a..ac4c6221ca3d7101c9074f0ee4102583e8d771fc 100644 (file)
@@ -91,6 +91,13 @@ CACHED_CONFIGUREVARS = " \
                 ac_cv_file__dev_ptc=no \
                 ac_cv_working_tzset=yes \
 "
+# set thread stack size to 2MB on musl for interpreter and stdlib C extensions
+# so it does not run into stack limits due to musl's small thread stack
+# This is only needed to build interpreter and not the subsequent modules
+# Thats why CFLAGS_NODIST is modified instead of CFLAGS
+CACHED_CONFIGUREVARS:append:libc-musl = "\
+    CFLAGS_NODIST='${CFLAGS} -DTHREAD_STACK_SIZE=0x200000' \
+"
 
 # 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)}"