summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Marko <peter.marko@siemens.com>2025-03-01 21:00:35 +0100
committerArmin Kuster <akuster808@gmail.com>2025-03-03 08:08:37 -0500
commit96af366002b63d9b94b81c4738c679fa380858d5 (patch)
treef2acee52cf46690b5c50265b9947dcac76869e3d
parentc204166dac6e9ee3c008b0983a66491de077793b (diff)
downloadmeta-openembedded-96af366002b63d9b94b81c4738c679fa380858d5.tar.gz
python3-grpcio(-tools): fix build concurrency issue
Set GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS to limit spawned compiler processes. Without this it uses all available CPUs (via multiprocessing.cpu_count()) and can exhaust build host since there are lot of files to compile (e.g. with 128 cores it manages to spawn 128 gcc processes) Note that this is a general problem for all setuptools based builds with build_ext compilation which can either compile with 1 thread or cpu_count threads. grpcio hot-patches setuptools and allows to set specific build concurrency value. (From master rev: fe582374d3ba474164005942799eb2bddc52a080) Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio_1.62.2.bb4
2 files changed, 8 insertions, 0 deletions
diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.2.bb b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.2.bb
index e05b8734d6..5b8bbe681a 100644
--- a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.2.bb
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.2.bb
@@ -16,4 +16,8 @@ SRC_URI[sha256sum] = "5fd5e1582b678e6b941ee5f5809340be5e0724691df5299aae8226640f
16 16
17RDEPENDS:${PN} = "python3-grpcio" 17RDEPENDS:${PN} = "python3-grpcio"
18 18
19do_compile:prepend() {
20 export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="${@oe.utils.parallel_make(d, False)}"
21}
22
19BBCLASSEXTEND = "native nativesdk" 23BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.62.2.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.62.2.bb
index b12b509142..3581991a56 100644
--- a/meta-python/recipes-devtools/python/python3-grpcio_1.62.2.bb
+++ b/meta-python/recipes-devtools/python/python3-grpcio_1.62.2.bb
@@ -38,6 +38,10 @@ BORING_SSL:aarch64 = "1"
38BORING_SSL ?= "0" 38BORING_SSL ?= "0"
39export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}" 39export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}"
40 40
41do_compile:prepend() {
42 export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="${@oe.utils.parallel_make(d, False)}"
43}
44
41GRPC_CFLAGS ?= "" 45GRPC_CFLAGS ?= ""
42GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions" 46GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions"
43export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}" 47export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}"