From patchwork Sat Jan 3 20:04:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1221 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767470745; bh=fmPizxng3c29EHINuLAErkN3vFeabLBMotsINFAl5bY=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=ZfAPpDNCvvrRHR/b30plLhHI0+oQkvYdnHJy9X4IoziUVtK8XLO/ZbapoVX2X+6dq JIP6ANHfR9StI0SOAkL8tGbjZ3b2JgYXSxBGvJ+duNePgT4pWkzlCrT301P+weFss1 SMnWw6zO5S61tC+U3TE+0AuNdgadO55GVNYH/5mh1xiUkRn5qR5qy1dvBPMIleU1r9 cuFqg9nS+ZtasrISy9wLz86koRg9+o+ZIa9VpaYbSv5zmcLq03kregLKir8CKvbohG 6zfw9iIR/Mj1kEMFEnS1hcErkQboUamKSCTduC0AKh1KVjiooVqv6tJTko3JEwg/yd YaXNMJNVNSlOw== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 8C47169093 for ; Sat, 3 Jan 2026 13:05:45 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id UnoQ6UxDNfc8 for ; Sat, 3 Jan 2026 13:05:45 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767470745; bh=fmPizxng3c29EHINuLAErkN3vFeabLBMotsINFAl5bY=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=ZfAPpDNCvvrRHR/b30plLhHI0+oQkvYdnHJy9X4IoziUVtK8XLO/ZbapoVX2X+6dq JIP6ANHfR9StI0SOAkL8tGbjZ3b2JgYXSxBGvJ+duNePgT4pWkzlCrT301P+weFss1 SMnWw6zO5S61tC+U3TE+0AuNdgadO55GVNYH/5mh1xiUkRn5qR5qy1dvBPMIleU1r9 cuFqg9nS+ZtasrISy9wLz86koRg9+o+ZIa9VpaYbSv5zmcLq03kregLKir8CKvbohG 6zfw9iIR/Mj1kEMFEnS1hcErkQboUamKSCTduC0AKh1KVjiooVqv6tJTko3JEwg/yd YaXNMJNVNSlOw== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 7BDD269090 for ; Sat, 3 Jan 2026 13:05:45 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767470744; bh=HerlAAT3qnrrVkbVLyxeTT/z9/YZN5ME9GoeUzKhxa4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GSIgpZ9J1fuacYUYyhnIc8lsVpiMzEh0cNFZDGOPm1hw0uJ3MPBJrEvMv9QZDaWmv vxy27vIpNOL0yO4Zafj/cqPDjssAPaSZLXV8Zh9qnoGnwdPUro1RiwdkCDITXb6kYk 9JuXMGmN4dVduUdi2zt/cLUysGo2nyHJJRSADIzT9fPnPkzLqgqSwiMv9fZENd9iAU kZQ8rtWQQauNRliyDZCG54y5/rR/IZ3dbzjXvSf3febnXlC/VnvDFW/QLOQsS7y2Qz KY2dy0XvuB2V8OZr9iSLXV07JpOaXaKTzmw1Do2N8dyDu2mfH1c0V4us8ZU0XdxDoJ sA6H6Oj1MNHjw== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 8081069060; Sat, 3 Jan 2026 13:05:44 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id WLme_UKeOB6C; Sat, 3 Jan 2026 13:05:44 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767470740; bh=XXI3DgTi911LhqhdWifJnCYTID+vN75wbgh2NCH91Ok=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sJn+KTKZD+5Ekn03pj09AupdlFEY86wAHshEcgsg5PGTjs8qmw+QQo298FifBxwOc PzYoikRXsGL0hj/m24o6gVkEp90l/HVIahKdgKYOFrtscH3XfC2lK0Cj6BYhnQZuxv Fz1UqBnofpbPQQmV/ITSG+qy/spcR/z69SgUJDaQmaO18RleEyBt3WOO/obwLceOvs WKC85DpettyVVgH7hSjKaqNKl9lHcpPBKlBqgVDE5OntzfPC3nMocUhlymoN9eWWcU JeqKgaEKIuvAlmuoAdnVYIk7NB/BxhLfQSSYgLHrRlRpFswf1QknkLWOSsKGgk3wz6 mFBxuvGr4sU2A== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id C6AEE68FCC; Sat, 3 Jan 2026 13:05:39 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sat, 3 Jan 2026 13:04:34 -0700 Message-ID: <20260103200510.3605009-4-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260103200510.3605009-1-sjg@u-boot.org> References: <20260103200510.3605009-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: UIOTBYUHFM7UQTBVBHXCSYTOM7Q6WQR5 X-Message-ID-Hash: UIOTBYUHFM7UQTBVBHXCSYTOM7Q6WQR5 X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Heinrich Schuchardt , Simon Glass , Claude X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH v2 03/29] buildman: Fix IDE mode to show warnings List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass When IDE mode is enabled (-I), warnings are not shown because: 1. The process_result() function only shows output in verbose mode, not IDE mode 2. When there are warnings (stderr output), the build is considered "failed" and retried. The retry finds the object files already up to date from the first build, so make does not recompile them and produces no warnings. The second result (with empty stderr) then overwrites the first, losing the warnings. Fix this by: - Adding IDE mode handling in process_result() to write stderr directly - Changing the retry logic to only retry on actual failures (return_code != 0), not on warnings Fixes: 6a30a2666008 ("buildman: Support running from an IDE") Co-developed-by: Claude Signed-off-by: Simon Glass --- (no changes since v1) tools/buildman/builder.py | 14 ++++++++++---- tools/buildman/builderthread.py | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py index c2f0b4e409e..e218aa4184a 100644 --- a/tools/buildman/builder.py +++ b/tools/buildman/builder.py @@ -575,7 +575,10 @@ class Builder: self.already_done += 1 if result.kconfig_reconfig: self.kconfig_reconfig += 1 - if self._verbose: + if self._ide: + if result.stderr: + sys.stderr.write(result.stderr) + elif self._verbose: terminal.print_clear() boards_selected = {target : result.brd} self.reset_result_summary(boards_selected) @@ -1440,9 +1443,12 @@ class Builder: # For the IDE mode, print out all the output if self._ide: - outcome = board_dict[target] - for line in outcome.err_lines: - sys.stderr.write(line) + for target in board_dict: + if target not in board_selected: + continue + outcome = board_dict[target] + for line in outcome.err_lines: + sys.stderr.write(line) # Display results by arch elif any((ok_boards, warn_boards, err_boards, unknown_boards, new_boards, diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py index 9449485a4cb..3d1b656531d 100644 --- a/tools/buildman/builderthread.py +++ b/tools/buildman/builderthread.py @@ -769,7 +769,7 @@ class BuilderThread(threading.Thread): force_build or self.builder.force_build, self.builder.force_build_failures, job.work_in_output, job.adjust_cfg, job.fragments) - failed = result.return_code or result.stderr + failed = result.return_code did_config = do_config if failed and not do_config and not self.mrproper: # If our incremental build failed, try building again @@ -826,7 +826,7 @@ class BuilderThread(threading.Thread): self.mrproper, self.builder.config_only, True, self.builder.force_build_failures, job.work_in_output, job.adjust_cfg, job.fragments) - failed = result.return_code or result.stderr + failed = result.return_code if failed and not self.mrproper: result, request_config = self.run_commit(None, brd, work_dir, True, self.builder.fallback_mrproper,