From 7842d4eb450d4360bc28e6635d501b687a212bcd Mon Sep 17 00:00:00 2001 From: Peter Marko Date: Tue, 4 Mar 2025 19:59:58 +0100 Subject: 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 Signed-off-by: Khem Raj Signed-off-by: Armin Kuster --- meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb | 4 ++++ meta-python/recipes-devtools/python/python3-grpcio_1.45.0.bb | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'meta-python/recipes-devtools/python') diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb index 1e919dd3af..be851ba990 100644 --- a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb +++ b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb @@ -14,4 +14,8 @@ SRC_URI[sha256sum] = "a016cfc21e0d91b3b036d3d4f968d1fdea865dfa03524cb1fbeca84719 RDEPENDS:${PN} = "${PYTHON_PN}-grpcio" +do_compile:prepend() { + export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="${@oe.utils.parallel_make(d, False)}" +} + BBCLASSEXTEND = "native nativesdk" diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.45.0.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.45.0.bb index ca55a7f091..56b84dab72 100644 --- a/meta-python/recipes-devtools/python/python3-grpcio_1.45.0.bb +++ b/meta-python/recipes-devtools/python/python3-grpcio_1.45.0.bb @@ -35,6 +35,10 @@ BORING_SSL:arm = "1" BORING_SSL ?= "0" export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}" +do_compile:prepend() { + export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="${@oe.utils.parallel_make(d, False)}" +} + GRPC_CFLAGS ?= "" GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions" export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}" -- cgit v1.2.3-54-g00ecf