From patchwork Sat Jan 3 20:32:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1254 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=1767472409; bh=wPovyIfAXqDusLEUnRcpPDkLxgb59d5O8r4ELb4pTJ0=; 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=YydVMhkto6VG/IKffv1Knjzj0QE3UnrN0v5ZPk1vAEOyHOzPDr0SmdAa5yLcjCPuh 1JOCj1YHauqvmqkmQWMx6cRjXXD+IGINBLE673/443lZoD49ylbnitbg+PwgPh8ilD 7dBMeMhy5fbnH688lAL8bDNGCTT0UeIGVN7Lju2fiR7UVTm9fQfBjk1SUp+t6u2OLk n6ZpYKsSBYY/hUPAmwooKbqidegX9w1uH7cfBekdokvLGMKxGFPTuaEC7k+lAa0Bvr khxSFYB4NezSIRACcZVKM1Xgun0Vq6CLnZHnOAee9ryG+W1jQAbBQ3ZnOyRdfPjzjh TrP0T36k2Xehw== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id D16E5690BF for ; Sat, 3 Jan 2026 13:33:29 -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 UA9gVQlYzcmx for ; Sat, 3 Jan 2026 13:33:29 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767472409; bh=wPovyIfAXqDusLEUnRcpPDkLxgb59d5O8r4ELb4pTJ0=; 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=YydVMhkto6VG/IKffv1Knjzj0QE3UnrN0v5ZPk1vAEOyHOzPDr0SmdAa5yLcjCPuh 1JOCj1YHauqvmqkmQWMx6cRjXXD+IGINBLE673/443lZoD49ylbnitbg+PwgPh8ilD 7dBMeMhy5fbnH688lAL8bDNGCTT0UeIGVN7Lju2fiR7UVTm9fQfBjk1SUp+t6u2OLk n6ZpYKsSBYY/hUPAmwooKbqidegX9w1uH7cfBekdokvLGMKxGFPTuaEC7k+lAa0Bvr khxSFYB4NezSIRACcZVKM1Xgun0Vq6CLnZHnOAee9ryG+W1jQAbBQ3ZnOyRdfPjzjh TrP0T36k2Xehw== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id BEF39690BC for ; Sat, 3 Jan 2026 13:33:29 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767472408; bh=bFE2t9KoZ5CbF5Wd6WIZccBKOYz95liY+Let7/EHY5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oQuXy+5PjbfImhqLOhxsVt9NO8OlYJwIISf/yndlMqOPq7V+uVmjR8AQOUX96R+wc muqIFnADdL3LnxMvUAzw7pU1l7LfxEH5vT6ksiiy3lAGgFdmLRYeNM11TSBd/q0aP8 RmULoUsbf/ekKIFv63aiBXF0YJe1gcXQASf2haURAWEPbuah8e4TVbsNjoAFcGrzsK TesAgLxapP9z0cQAsjH21pO2WaEm8q3i2HgD8EMgXKxAYpTgOd02Izh9oH9RMLnY4s HgroL2gH+D3DlhzfzAF+El36udF1p5rjR4gxYxlcviQfg74+8rsoTsfD3y85qKOaaD 44P7OLTKosYjA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 0081868F35; Sat, 3 Jan 2026 13:33:28 -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 Pi8ab-eS1jYw; Sat, 3 Jan 2026 13:33:27 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1767472403; bh=x6jPYuwGddUMkjDAE6wBBoPBA3jHg55aLkSFc9L9fns=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LOzdF1k6DAvtrp0c/aoie8sthOjvyCilMuGHXMgCB01QYnnMbe5TUVkejviSwW40s w1ejwzndEHKaaK4Vr3E6VcxiaPoojkaigiKH++WCIKGNl05Hs7XqQyf4j02vJWBQ4c wYU0YOOZmd4tiuIoJq/3mjqp+5JDkmVssireLsWefWvNAqh2c5JVZoRKoi3fnQOIye 17Ngj2CdzbZgq8uNFYCBRiNxmR+LmKCYpkKOXemeV7RzoPNdl3nA3jlqQm2pzW2lpk tVcGAeCI/8jK7Fr0wCvI40gaYaerzRJ3FnpXWDelaEAvW/WZN7tFVLJIgoDOpy4XkE f8mk5LmUtP1Pw== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 88D9E68FC8; Sat, 3 Jan 2026 13:33:23 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sat, 3 Jan 2026 13:32:33 -0700 Message-ID: <20260103203243.3727493-8-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260103203243.3727493-1-sjg@u-boot.org> References: <20260103203243.3727493-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: YW7ZSPA3M2KAINIQZ32XNJ4LTPQUWPUM X-Message-ID-Hash: YW7ZSPA3M2KAINIQZ32XNJ4LTPQUWPUM 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: Simon Glass , "Claude Opus 4 . 5" X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 07/12] buildman: Extract target checking from scan() into _check_targets() 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 Move the logic that verifies exactly one TARGET_xxx option is set into a separate method to reduce complexity of scan() Co-developed-by: Claude Opus 4.5 Signed-off-by: Simon Glass --- tools/buildman/boards.py | 45 ++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/tools/buildman/boards.py b/tools/buildman/boards.py index e7844f0e5e7..74f654c6813 100644 --- a/tools/buildman/boards.py +++ b/tools/buildman/boards.py @@ -294,21 +294,7 @@ class KconfigScanner: # Check there is exactly one TARGET_xxx set if warn_targets: - target = None - for name, sym in self._conf.syms.items(): - if name.startswith('TARGET_') and sym.str_value == 'y': - tname = name[7:].lower() - if target: - warnings.append( - f'WARNING: {leaf}: Duplicate TARGET_xxx: ' - f'{target} and {tname}') - else: - target = tname - - if not target: - cfg_name = expect_target.replace('-', '_').upper() - warnings.append( - f'WARNING: {leaf}: No TARGET_{cfg_name} enabled') + warnings += self._check_targets(leaf, expect_target) params['target'] = expect_target @@ -340,6 +326,35 @@ class KconfigScanner: else: params['arch'] = 'riscv64' + def _check_targets(self, leaf, expect_target): + """Check that exactly one TARGET_xxx option is set + + Args: + leaf (str): Leaf name of defconfig file (for warnings) + expect_target (str): Expected target name + + Returns: + list of str: List of warnings found + """ + warnings = [] + target = None + for name, sym in self._conf.syms.items(): + if name.startswith('TARGET_') and sym.str_value == 'y': + tname = name[7:].lower() + if target: + warnings.append( + f'WARNING: {leaf}: Duplicate TARGET_xxx: ' + f'{target} and {tname}') + else: + target = tname + + if not target: + cfg_name = expect_target.replace('-', '_').upper() + warnings.append( + f'WARNING: {leaf}: No TARGET_{cfg_name} enabled') + + return warnings + class MaintainersDatabase: