[Buildroot] [PATCH v7 00/23] Move toolchain configs and autobuild logic in-tree

Arnout Vandecappelle (Essensium/Mind) arnout at mind.be
Fri Jul 21 01:05:07 UTC 2017


 Hi all,

 This series adds the toolchain configs in-tree. In addition, the part
of the autobuild-run script that generates the random .config is also
moved in-tree, to utils/genrandconfig. With these two changes, we can
make sure that the autobuilders stay in sync with the Buildroot tree,
i.e. that only toolchains are tried that actually work with that
version of Buildroot, and that the exclusions are correct. This enables
us to run autobuilders on different branches, like the maintainance
branches.

 The series also includes a large number of refactoring and improvement
patches that are more or less optional.

 In this version, I chose to keep the toolchain-configs.csv file, to
keep things simpler. It is only really used to keep track of the host
architecture required by each toolchain. There are still various
options to specify the host architecture in a different way; we can
follow up later with one of these.
- Rename the toolchain configs to something that includes the required
  host arch.
- Rename the toolchain tarball itself to something that includes the
  host arch.
- Adding a dummy config option BR2_HOSTARCH=... to the toolchain config.

 In addition to this series, there is a series that updates the
autobuild-run script to use genrandconfig, which I will also post in
reply to this mail. Since the interface of genrandconfig gradually
changes with subsequent patches from this series, there are separate
patches for the autobuild-run script as well. Those patches should
be squashed to whatever version from this series makes it into master.

 Some further possible improvements:
- Remove the SystemInfo class from autobuild-run, instead using the
  one from genrandconfig. Not so trivial :-(
- Refactor test-pkg with genrandconfig so the logic for generating
  a random configuration is common.
- More refactorings are possible in genrandconfig, e.g. to simplify
  the way exclusions are handles.

This series can also be found on
https://gitlab.com/arnout/buildroot toolchain-defconfigs-2

Changes in v7:
- new patches for genrandconfig;
- use toolchain-configs.csv instead of listing the directory;
- add BR2_COMPILER_PARANOID_UNSAFE_PATH=y and
  BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y to minimal.config

Changes in v6:
- drops the already applied patches;
- puts the configs in support/config-fragments instead of configs
  (which implies changes in test-pkg and in the commit messages of
   the rest of the series);
- drops the patches for supporting subdirectories under configs/
- doesn't move the mkdir of the build directory up from build_one()
  to main().

 Regards,
 Arnout

---
Arnout Vandecappelle (23):
  utils/genrandconfig: new script
  genrandconfig: use subprocess.check_output instead of Popen
  genrandconfig: fix (some) pep8 warnings
  genrandconfig: replace kwargs with explicit arguments
  genrandconfig: move instantiation of SystemInfo down
  genrandconfig: verbose output and use stderr
  genrandconfig: calculate outputdir in __main__
  genrandconfig: calculate buildrootdir in __main__
  genrandconfig: pass outputdir and buildrootdir as arguments
  genrandconfig: calculate configfile only once
  genrandconfig: fix the case when outputdir is 'output'
  support/test-pkg: move minimal.config into a separate file
  minimal.config: add BR2_COMPILER_PARANOID_UNSAFE_PATH=y
  minimal.config: add BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
  genrandconfig: use minimal.config
  support: add autobuild toolchain config fragments
  test-pkg: get configs from in-tree toolchain-configs.csv
  support/test-pkg: add option to use an alternate toolchains CSV file
  genrandconfig: get configs from in-tree toolchain-configs.csv
  toolchain-configs.csv: remove unused libc column
  Makefile: refactor *config targets
  Makefile: add alldefconfig target
  test-pkg: use merge_config.sh to merge the fragments

 Makefile                                           |  45 +--
 .../autobuild/armv5-ctng-linux-gnueabi.config      |  10 +
 .../autobuild/armv7-ctng-linux-gnueabihf.config    |  13 +
 .../autobuild/br-aarch64-glibc.config              |   9 +
 .../autobuild/br-arc-full-internal.config          |   3 +
 .../autobuild/br-arcle-hs38.config                 |  11 +
 .../config-fragments/autobuild/br-arm-basic.config |   8 +
 .../autobuild/br-arm-cortex-a9-glibc.config        |  11 +
 .../autobuild/br-arm-cortex-a9-musl.config         |  11 +
 .../autobuild/br-arm-cortex-m4-full.config         |  12 +
 .../autobuild/br-arm-full-nothread.config          |  11 +
 .../autobuild/br-arm-full-static.config            |  11 +
 .../config-fragments/autobuild/br-arm-full.config  |  10 +
 .../autobuild/br-arm-internal-full.config          |   6 +
 .../config-fragments/autobuild/br-bfin-full.config |  12 +
 .../autobuild/br-i386-pentium-mmx-musl.config      |  10 +
 .../autobuild/br-i386-pentium4-full.config         |  10 +
 .../autobuild/br-m68k-5208-full.config             |  11 +
 .../autobuild/br-m68k-68040-full.config            |  10 +
 .../autobuild/br-microblazeel-full-internal.config |   1 +
 .../autobuild/br-microblazeel-full.config          |  10 +
 .../autobuild/br-mips32r6-el-hf-glibc.config       |  11 +
 .../autobuild/br-mips64-n64-full.config            |  10 +
 .../autobuild/br-mips64r6-el-hf-glibc.config       |  12 +
 .../autobuild/br-mipsel-o32-full.config            |  10 +
 .../autobuild/br-nios2-glibc.config                |   9 +
 .../autobuild/br-openrisc-uclibc.config            |  10 +
 .../autobuild/br-powerpc-603e-basic-cpp.config     |  10 +
 .../autobuild/br-powerpc-e500mc-full.config        |  11 +
 .../autobuild/br-powerpc-internal-full.config      |   5 +
 .../autobuild/br-powerpc64-power7-glibc.config     |   9 +
 .../autobuild/br-powerpc64le-power8-glibc.config   |   9 +
 .../config-fragments/autobuild/br-sh4-full.config  |  10 +
 .../autobuild/br-sparc-uclibc.config               |   9 +
 .../autobuild/br-sparc64-glibc.config              |   8 +
 .../autobuild/br-x86-64-core2-full.config          |  11 +
 .../autobuild/br-x86-64-musl.config                |  10 +
 .../autobuild/br-xtensa-full-internal.config       |   4 +
 .../autobuild/br-xtensa-full.config                |   9 +
 .../autobuild/i686-ctng-linux-gnu.config           |  10 +
 .../autobuild/linaro-aarch64.config                |   3 +
 .../config-fragments/autobuild/linaro-arm.config   |   5 +
 .../autobuild/mips64el-ctng_n32-linux-gnu.config   |   9 +
 .../autobuild/mips64el-ctng_n64-linux-gnu.config   |  11 +
 .../powerpc-ctng_e500v2-linux-gnuspe.config        |  11 +
 .../autobuild/sourcery-arm-armv4t.config           |   4 +
 .../autobuild/sourcery-arm-thumb2.config           |   7 +
 .../config-fragments/autobuild/sourcery-arm.config |   3 +
 .../autobuild/sourcery-mips.config                 |   4 +
 .../autobuild/sourcery-mips64.config               |   5 +
 .../autobuild/sourcery-nios2.config                |   3 +
 .../autobuild/sourcery-x86-64.config               |   4 +
 .../autobuild/toolchain-configs.csv                |  52 +++
 .../autobuild/x86_64-ctng_locales-linux-gnu.config |  11 +
 support/config-fragments/minimal.config            |   8 +
 utils/genrandconfig                                | 430 +++++++++++++++++++++
 utils/test-pkg                                     |  50 +--
 57 files changed, 970 insertions(+), 62 deletions(-)
 create mode 100644 support/config-fragments/autobuild/armv5-ctng-linux-gnueabi.config
 create mode 100644 support/config-fragments/autobuild/armv7-ctng-linux-gnueabihf.config
 create mode 100644 support/config-fragments/autobuild/br-aarch64-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-arc-full-internal.config
 create mode 100644 support/config-fragments/autobuild/br-arcle-hs38.config
 create mode 100644 support/config-fragments/autobuild/br-arm-basic.config
 create mode 100644 support/config-fragments/autobuild/br-arm-cortex-a9-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-arm-cortex-a9-musl.config
 create mode 100644 support/config-fragments/autobuild/br-arm-cortex-m4-full.config
 create mode 100644 support/config-fragments/autobuild/br-arm-full-nothread.config
 create mode 100644 support/config-fragments/autobuild/br-arm-full-static.config
 create mode 100644 support/config-fragments/autobuild/br-arm-full.config
 create mode 100644 support/config-fragments/autobuild/br-arm-internal-full.config
 create mode 100644 support/config-fragments/autobuild/br-bfin-full.config
 create mode 100644 support/config-fragments/autobuild/br-i386-pentium-mmx-musl.config
 create mode 100644 support/config-fragments/autobuild/br-i386-pentium4-full.config
 create mode 100644 support/config-fragments/autobuild/br-m68k-5208-full.config
 create mode 100644 support/config-fragments/autobuild/br-m68k-68040-full.config
 create mode 100644 support/config-fragments/autobuild/br-microblazeel-full-internal.config
 create mode 100644 support/config-fragments/autobuild/br-microblazeel-full.config
 create mode 100644 support/config-fragments/autobuild/br-mips32r6-el-hf-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-mips64-n64-full.config
 create mode 100644 support/config-fragments/autobuild/br-mips64r6-el-hf-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-mipsel-o32-full.config
 create mode 100644 support/config-fragments/autobuild/br-nios2-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-openrisc-uclibc.config
 create mode 100644 support/config-fragments/autobuild/br-powerpc-603e-basic-cpp.config
 create mode 100644 support/config-fragments/autobuild/br-powerpc-e500mc-full.config
 create mode 100644 support/config-fragments/autobuild/br-powerpc-internal-full.config
 create mode 100644 support/config-fragments/autobuild/br-powerpc64-power7-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-powerpc64le-power8-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-sh4-full.config
 create mode 100644 support/config-fragments/autobuild/br-sparc-uclibc.config
 create mode 100644 support/config-fragments/autobuild/br-sparc64-glibc.config
 create mode 100644 support/config-fragments/autobuild/br-x86-64-core2-full.config
 create mode 100644 support/config-fragments/autobuild/br-x86-64-musl.config
 create mode 100644 support/config-fragments/autobuild/br-xtensa-full-internal.config
 create mode 100644 support/config-fragments/autobuild/br-xtensa-full.config
 create mode 100644 support/config-fragments/autobuild/i686-ctng-linux-gnu.config
 create mode 100644 support/config-fragments/autobuild/linaro-aarch64.config
 create mode 100644 support/config-fragments/autobuild/linaro-arm.config
 create mode 100644 support/config-fragments/autobuild/mips64el-ctng_n32-linux-gnu.config
 create mode 100644 support/config-fragments/autobuild/mips64el-ctng_n64-linux-gnu.config
 create mode 100644 support/config-fragments/autobuild/powerpc-ctng_e500v2-linux-gnuspe.config
 create mode 100644 support/config-fragments/autobuild/sourcery-arm-armv4t.config
 create mode 100644 support/config-fragments/autobuild/sourcery-arm-thumb2.config
 create mode 100644 support/config-fragments/autobuild/sourcery-arm.config
 create mode 100644 support/config-fragments/autobuild/sourcery-mips.config
 create mode 100644 support/config-fragments/autobuild/sourcery-mips64.config
 create mode 100644 support/config-fragments/autobuild/sourcery-nios2.config
 create mode 100644 support/config-fragments/autobuild/sourcery-x86-64.config
 create mode 100644 support/config-fragments/autobuild/toolchain-configs.csv
 create mode 100644 support/config-fragments/autobuild/x86_64-ctng_locales-linux-gnu.config
 create mode 100644 support/config-fragments/minimal.config
 create mode 100755 utils/genrandconfig

-- 
2.13.2



More information about the buildroot mailing list