From aed212bbb906722f93646f6fd59e596613ceb323 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Fri, 23 Oct 2026 10:01:57 +0800 Subject: [PATCH] Fix concurrent STM32 package updates and builds --- components/build.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/components/build.py b/components/build.py index 7d2978f..6daa625 100644 --- a/components/build.py +++ b/components/build.py @@ -77,16 +77,12 @@ def __build_pkgs_update(self, bsp_path, pkg, pkg_ver, log_path, flag): def __build_scons(self, bsp_path, tools, log_path, flag): if flag == 'Success': - if 'stm32' in bsp_path: - self.sem_stm32.acquire() os.environ['RTT_CC'] = 'gcc' os.environ['RTT_EXEC_PATH'] = tools command = 'scons -j16' print(bsp_path + ' ' + command) ret = os.system(command + ' -C ' + bsp_path + ' >> ' + log_path + ' 2>&1') - if 'stm32' in bsp_path: - self.sem_stm32.release() if ret == 0: flag = 'Success' else: @@ -141,9 +137,17 @@ def __build(self, bsp_path, pkg, pkg_ver, tools, log_path): return flag = self.__build_pyconfig(bsp_path, pkg, pkg_ver, log_path) - (flag, pkg_path) = self.__build_pkgs_update( - bsp_path, pkg, pkg_ver, log_path, flag) - flag = self.__build_scons(bsp_path, tools, log_path, flag) + # STM32 BSP copies share libraries during package updates and builds. + is_stm32 = 'stm32' in bsp_path + if is_stm32: + self.sem_stm32.acquire() + try: + (flag, pkg_path) = self.__build_pkgs_update( + bsp_path, pkg, pkg_ver, log_path, flag) + flag = self.__build_scons(bsp_path, tools, log_path, flag) + finally: + if is_stm32: + self.sem_stm32.release() if self.qemu and 'qemu' in bsp_path: flag = self.__qemu(bsp_path, log_path, flag, pkg, pkg_ver) os.rename(log_path, log_path + '-' + flag + '.txt')