[Concept,0/5] buildman: Improve toolchain selection and config adjustment

Message ID 20260112225406.3274105-1-sjg@u-boot.org
Headers
Series buildman: Improve toolchain selection and config adjustment |

Message

Simon Glass Jan. 12, 2026, 10:53 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

This little series provides a few fixes for problems reported quite some
time ago.

Firstly, when downloading a toolchain via --fetch-arch for an
architecture that matches the host (e.g., aarch64 on aarch64), two
problems occur:

1. The kernel.org toolchain tarballs contain symlinks with doubled
   prefixes like 'x86_64-linux-x86_64-linux-gcc', causing an "ambiguous
   toolchains" warning.

2. The downloaded toolchain may be ignored in favour of a system-installed
   one (e.g., from a distribution package) because both have the same
   calculated priority.

This series fixes these issues by:
- Adding a new PRIORITY_DOWNLOADED level so downloaded toolchains are
  preferred over system-installed ones
- Filtering out doubled-prefix binaries during toolchain scanning

This series also improves the --adjust-cfg feature to use
merge_config.sh for proper Kconfig dependency resolution, including
'imply' statements.


Simon Glass (5):
  buildman: Update test_reproducible for real Kconfig resolution
  buildman: Add a board parameter to check_command()
  buildman: Use merge_config.sh for --adjust-cfg
  buildman: Prioritise downloaded toolchains over system ones
  buildman: Filter out doubled-prefix toolchain binaries

 test/Kconfig                    |  14 +++
 tools/buildman/builderthread.py |  12 +--
 tools/buildman/buildman.rst     |  29 +++++-
 tools/buildman/cfgutil.py       |  88 +++++++++++++++++
 tools/buildman/func_test.py     | 165 ++++++++++++++++++++++++++++----
 tools/buildman/test.py          |  67 +++++++++++++
 tools/buildman/test_cfgutil.py  |  31 ++++++
 tools/buildman/toolchain.py     |  49 +++++++++-
 8 files changed, 422 insertions(+), 33 deletions(-)