binman: Use target-specific tools when cross-compiling
authorAlper Nebi Yasak <alpernebiyasak@gmail.com>
Sun, 6 Sep 2020 11:46:05 +0000 (14:46 +0300)
committerSimon Glass <sjg@chromium.org>
Tue, 22 Sep 2020 18:54:13 +0000 (12:54 -0600)
commit1e4687aa47ed269bbc82497df872f614cfafb2e9
treebc6741781e76cb31f6e8deca52dd3ad52328959c
parent5ac7687827d5b414bd26ceb7de17e7a14490af34
binman: Use target-specific tools when cross-compiling

Currently, binman always runs the compile tools like cc, objcopy, strip,
etc. using their literal name. Instead, this patch makes it use the
target-specific versions by default, derived from the tool-specific
environment variables (CC, OBJCOPY, STRIP, etc.) or from the
CROSS_COMPILE environment variable.

For example, the u-boot-elf etype directly uses 'strip'. Trying to run
the tests with 'CROSS_COMPILE=i686-linux-gnu- binman test' on an arm64
host results in the '097_elf_strip.dts' test to fail as the arm64
version of 'strip' can't understand the format of the x86 ELF file.

This also adjusts some command.Output() calls that caused test errors or
failures to use the target versions of the tools they call. After this,
patch, an arm64 host can run all tests with no errors or failures using
a correct CROSS_COMPILE value.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
tools/binman/elf.py
tools/binman/elf_test.py
tools/dtoc/fdt_util.py
tools/patman/tools.py