[U-Boot] [PATCH v3 0/9] tools: Support building U-Boot host tools for Windows via MSYS2

Bin Meng bmeng.cn at gmail.com
Sun Oct 27 12:19:39 UTC 2019

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
  tools: zynqmpbif: Use compiler builtin instead of linux-specific
  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


More information about the U-Boot mailing list