
Per current U-Boot README, building Windows versions of the utilities in the tools directory is done via the MinGW toolchain. But testing shows that it is broken and actually it must have been broken for quite a long time.
Fixing MinGW build seems quite amount of work as developers of U-Boot normally work on Linux boxes hence codes written are mainly for Linux or POSIX OSes. We must investigate another way of building host tools for Windows, and now we have MSYS2, a software distro and building platform for Windows, to build POSIX compliant software on Windows using an emulation layer.
This small series fixes several issues in current U-Boot tools codes, that only assume a Linux host is used. Cases are using standard C typedefs whenever possbile, or using compiler builtin functions to improve portability, etc.
A reST document for how to build U-Boot host tools for both platforms is added.
A new CI pipeline configuration for Microsoft Azure Pipelines is added for U-Boot. We rely on it to ensure future host tools for Windows build does not break.
I've also investigated putting what we have for now on GitLab-CI and Travis-CI to Azure Pipelines, and it turns out there are several issues that should be fixed. I will post a follow-up patch series for enabling full CI testing on Azure Pipelines.
Changes in v3: - new patch: tools: ifwitool: Define __packed when it is not defined - rename to .azure-pipelines.yml - correct typo in the commit summary
Changes in v2: - new patch: Add .gitattributes for line endings - new patch: tools: Avoid creating symbolic links for tools/version.h - new patch: Add Microsoft Azure pipelines configuration
Bin Meng (9): tools: image.h: Use portable uint32_t instead of linux-specific __be32 tools: mtk_image.h: Use portable uintXX_t instead of linux-specific __leXX tools: zynqmpbif: Use compiler builtin instead of linux-specific __swab32 linux/types.h: Surround 'struct ustat' with __linux__ tools: ifwitool: Define __packed when it is not defined doc: Add documentation for how to build U-Boot host tools Add .gitattributes for line endings tools: Avoid creating symbolic links for tools/version.h Add Microsoft Azure Pipelines configuration
.azure-pipelines.yml | 38 +++++++++++++++++++++++ .gitattributes | 2 ++ Makefile | 9 ++++-- doc/build/index.rst | 9 ++++++ doc/build/tools.rst | 47 ++++++++++++++++++++++++++++ doc/index.rst | 11 +++++++ include/image.h | 14 ++++----- include/linux/types.h | 2 ++ tools/.gitignore | 1 + tools/ifwitool.c | 2 ++ tools/mtk_image.h | 86 +++++++++++++++++++++++++-------------------------- tools/version.h | 1 - tools/zynqmpbif.c | 2 +- 13 files changed, 169 insertions(+), 55 deletions(-) create mode 100644 .azure-pipelines.yml create mode 100644 .gitattributes create mode 100644 doc/build/index.rst create mode 100644 doc/build/tools.rst delete mode 120000 tools/version.h