support/test-pkg: fixes and enhancements + add autobuild defconfigs
v5 cover support/test-pkg: fixes and enhancements + add autobuild defconfigs
Hi all,
This series combines the test-pkg rework from Yann [1] with my adding the
autobuild toolchain defconfigs in-tree [2]. The two series are combined because I added a patch that makes test-pkg use the in-tree autobuild defconfigs instead of fetching them from [3], so the two series conflict with each other.
Since the defconfigs are now in-tree, there is no toolchain URL anymore,
so adding the option to specify an alternate URL [4] doesn't make much sense. It is replaced with an option to specify an alternate toolchain directory.
Finally, I added some further enhancement (refactoring) patches:
- moving the minimal config fragment into a separate file;
- using merge_config.sh (which requires two preparatory patches). These can be applied more or less independently.
Regards,
Arnout
[1] http://patchwork.ozlabs.org/patch/728392/
[2] http://patchwork.ozlabs.org/patch/743573/
[3] http://autobuild.buildroot.org/toolchains/configs/toolchain-configs.csv
[4] http://patchwork.ozlabs.org/patch/728393/
The following changes since commit 9a521546ed553d2be23740bbf1a7aa05bce9eb09:
libnspr: use __nios2__ instead of nios2 (2017-04-06 16:13:52 +0200)
are available in the git repository at:
https://gitlab.com/arnout/buildroot toolchain-defconfigs
for you to fetch changes up to 698b2328063f47c75ed2d298cf378a2afd41ac37:
[RFC] list-defconfigs: support defconfigs in subdirectories (2017-04-06 20:12:49 +0200)
----------------------------------------------------------------
Arnout Vandecappelle (9):
Makefile: support defconfigs in subdirectories
configs: add autobuild toolchain defconfigs support/test-pkg: move minimal.config into a separate file support/test-pkg: get configs from buildroot defconfigs support/test-pkg: add option to use an alternate toolchain directory
Makefile: refactor *config targets
Makefile: add alldefconfig target
support/test-pkg: use merge_config.sh to merge the fragments [RFC] list-defconfigs: support defconfigs in subdirectories
Yann E. MORIN (4):
docs/manual: document the test-pkg script support/test-pkg: print number of toolchains and progress support/test-pkg: calculate toolchain name only once support/test-pkg: run legal-info
Makefile | 82 ++++++---------- .../autobuild/armv5-ctng-linux-gnueabi_defconfig | 10 ++ .../autobuild/armv7-ctng-linux-gnueabihf_defconfig | 13 +++ configs/autobuild/br-aarch64-glibc_defconfig | 9 ++ configs/autobuild/br-arc-full-internal_defconfig | 3 + configs/autobuild/br-arcle-hs38_defconfig | 10 ++ configs/autobuild/br-arm-basic_defconfig | 8 ++ configs/autobuild/br-arm-cortex-a9-glibc_defconfig | 11 +++ configs/autobuild/br-arm-cortex-a9-musl_defconfig | 11 +++ configs/autobuild/br-arm-cortex-m4-full_defconfig | 12 +++ configs/autobuild/br-arm-full-nothread_defconfig | 11 +++ configs/autobuild/br-arm-full-static_defconfig | 11 +++ configs/autobuild/br-arm-full_defconfig | 10 ++ configs/autobuild/br-arm-internal-full_defconfig | 6 ++ configs/autobuild/br-bfin-full_defconfig | 12 +++ .../autobuild/br-i386-pentium-mmx-musl_defconfig | 10 ++ configs/autobuild/br-i386-pentium4-full_defconfig | 10 ++ configs/autobuild/br-m68k-5208-full_defconfig | 11 +++ configs/autobuild/br-m68k-68040-full_defconfig | 10 ++ .../br-microblazeel-full-internal_defconfig | 1 + configs/autobuild/br-microblazeel-full_defconfig | 10 ++ .../autobuild/br-mips32r6-el-hf-glibc_defconfig | 11 +++ configs/autobuild/br-mips64-n64-full_defconfig | 10 ++ .../autobuild/br-mips64r6-el-hf-glibc_defconfig | 12 +++ configs/autobuild/br-mipsel-o32-full_defconfig | 10 ++ configs/autobuild/br-nios2-glibc_defconfig | 9 ++ configs/autobuild/br-openrisc-uclibc_defconfig | 10 ++ .../autobuild/br-powerpc-603e-basic-cpp_defconfig | 10 ++ configs/autobuild/br-powerpc-e500mc-full_defconfig | 11 +++ .../autobuild/br-powerpc-internal-full_defconfig | 5 + .../autobuild/br-powerpc64-power7-glibc_defconfig | 9 ++ .../br-powerpc64le-power8-glibc_defconfig | 9 ++ configs/autobuild/br-sh4-full_defconfig | 10 ++ configs/autobuild/br-sparc-uclibc_defconfig | 9 ++ configs/autobuild/br-sparc64-glibc_defconfig | 8 ++ configs/autobuild/br-x86-64-core2-full_defconfig | 11 +++ configs/autobuild/br-x86-64-musl_defconfig | 10 ++ .../autobuild/br-xtensa-full-internal_defconfig | 4 + configs/autobuild/br-xtensa-full_defconfig | 9 ++ configs/autobuild/i686-ctng-linux-gnu_defconfig | 10 ++ configs/autobuild/linaro-aarch64_defconfig | 2 + configs/autobuild/linaro-arm_defconfig | 4 + .../mips64el-ctng_n32-linux-gnu_defconfig | 9 ++ .../mips64el-ctng_n64-linux-gnu_defconfig | 11 +++ .../powerpc-ctng_e500v2-linux-gnuspe_defconfig | 11 +++ configs/autobuild/sourcery-arm-armv4t_defconfig | 4 + configs/autobuild/sourcery-arm-thumb2_defconfig | 6 ++ configs/autobuild/sourcery-arm_defconfig | 3 + configs/autobuild/sourcery-mips64_defconfig | 5 + configs/autobuild/sourcery-mips_defconfig | 4 + configs/autobuild/sourcery-nios2_defconfig | 2 + configs/autobuild/sourcery-sh_defconfig | 4 + configs/autobuild/sourcery-x86-64_defconfig | 4 + configs/autobuild/sourcery-x86_defconfig | 3 + .../x86_64-ctng_locales-linux-gnu_defconfig | 11 +++ docs/manual/adding-packages-tips.txt | 94 +++++++++++++++++++ docs/manual/adding-packages.txt | 3 + support/misc/minimal.config | 6 ++ support/scripts/test-pkg | 104 +++++++++++---------- 59 files changed, 636 insertions(+), 102 deletions(-) create mode 100644 configs/autobuild/armv5-ctng-linux-gnueabi_defconfig create mode 100644 configs/autobuild/armv7-ctng-linux-gnueabihf_defconfig create mode 100644 configs/autobuild/br-aarch64-glibc_defconfig create mode 100644 configs/autobuild/br-arc-full-internal_defconfig create mode 100644 configs/autobuild/br-arcle-hs38_defconfig create mode 100644 configs/autobuild/br-arm-basic_defconfig create mode 100644 configs/autobuild/br-arm-cortex-a9-glibc_defconfig create mode 100644 configs/autobuild/br-arm-cortex-a9-musl_defconfig create mode 100644 configs/autobuild/br-arm-cortex-m4-full_defconfig create mode 100644 configs/autobuild/br-arm-full-nothread_defconfig create mode 100644 configs/autobuild/br-arm-full-static_defconfig create mode 100644 configs/autobuild/br-arm-full_defconfig create mode 100644 configs/autobuild/br-arm-internal-full_defconfig create mode 100644 configs/autobuild/br-bfin-full_defconfig create mode 100644 configs/autobuild/br-i386-pentium-mmx-musl_defconfig create mode 100644 configs/autobuild/br-i386-pentium4-full_defconfig create mode 100644 configs/autobuild/br-m68k-5208-full_defconfig create mode 100644 configs/autobuild/br-m68k-68040-full_defconfig create mode 100644 configs/autobuild/br-microblazeel-full-internal_defconfig create mode 100644 configs/autobuild/br-microblazeel-full_defconfig create mode 100644 configs/autobuild/br-mips32r6-el-hf-glibc_defconfig create mode 100644 configs/autobuild/br-mips64-n64-full_defconfig create mode 100644 configs/autobuild/br-mips64r6-el-hf-glibc_defconfig create mode 100644 configs/autobuild/br-mipsel-o32-full_defconfig create mode 100644 configs/autobuild/br-nios2-glibc_defconfig create mode 100644 configs/autobuild/br-openrisc-uclibc_defconfig create mode 100644 configs/autobuild/br-powerpc-603e-basic-cpp_defconfig create mode 100644 configs/autobuild/br-powerpc-e500mc-full_defconfig create mode 100644 configs/autobuild/br-powerpc-internal-full_defconfig create mode 100644 configs/autobuild/br-powerpc64-power7-glibc_defconfig create mode 100644 configs/autobuild/br-powerpc64le-power8-glibc_defconfig create mode 100644 configs/autobuild/br-sh4-full_defconfig create mode 100644 configs/autobuild/br-sparc-uclibc_defconfig create mode 100644 configs/autobuild/br-sparc64-glibc_defconfig create mode 100644 configs/autobuild/br-x86-64-core2-full_defconfig create mode 100644 configs/autobuild/br-x86-64-musl_defconfig create mode 100644 configs/autobuild/br-xtensa-full-internal_defconfig create mode 100644 configs/autobuild/br-xtensa-full_defconfig create mode 100644 configs/autobuild/i686-ctng-linux-gnu_defconfig create mode 100644 configs/autobuild/linaro-aarch64_defconfig create mode 100644 configs/autobuild/linaro-arm_defconfig create mode 100644 configs/autobuild/mips64el-ctng_n32-linux-gnu_defconfig create mode 100644 configs/autobuild/mips64el-ctng_n64-linux-gnu_defconfig create mode 100644 configs/autobuild/powerpc-ctng_e500v2-linux-gnuspe_defconfig create mode 100644 configs/autobuild/sourcery-arm-armv4t_defconfig create mode 100644 configs/autobuild/sourcery-arm-thumb2_defconfig create mode 100644 configs/autobuild/sourcery-arm_defconfig create mode 100644 configs/autobuild/sourcery-mips64_defconfig create mode 100644 configs/autobuild/sourcery-mips_defconfig create mode 100644 configs/autobuild/sourcery-nios2_defconfig create mode 100644 configs/autobuild/sourcery-sh_defconfig create mode 100644 configs/autobuild/sourcery-x86-64_defconfig create mode 100644 configs/autobuild/sourcery-x86_defconfig create mode 100644 configs/autobuild/x86_64-ctng_locales-linux-gnu_defconfig create mode 100644 support/misc/minimal.config
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v5 1/13 docs/manual: document the test-pkg script
From: "Yann E. MORIN" <[email protected]>
---
Changes v4 -> v5:
Yann:
- enhance the description for SKIPPED (Thomas)
- typoes (Thomas)
Arnout:
- additional fixes of typing and wording
--- docs/manual/adding-packages-tips.txt | 93 ++++++++++++++++++++++++++++++++++++ docs/manual/adding-packages.txt | 3 ++ 2 files changed, 96 insertions(+)
docs/manual/adding-packages-tips.txt +93 -0
@@ -32,6 +32,99 @@ using the following rules: with `.` and `-` characters substituted with `_` (e.g.: +FOO_BAR_BOO_VERSION+). +[[testing-package]] +==== How to test your package + +Once you have added your new package, it is important that you test it +under various conditions: does it build for all architectures? Does it +build with the different C libraries? Does it need threads, NPTL? And +so on... + +Buildroot runs http://autobuild.buildroot.org/[autobuilders] which +continuously test random configurations. However, these only build the +`master` branch of the git tree, and your new fancy package is not yet +there. + +Buildroot provides a script in +support/scripts/test-pkg+ that uses the +same base configurations as used by the autobuilders so you can test +your package in the same conditions. + +First, create a config snippet that contains all the necessary options +needed to enable your package, but without any architecture or toolchain +option. For example, let's create a config snippet that just enables ++libcurl+, without any TLS backend: + +---- +$ cat libcurl.config +BR2_PACKAGE_LIBCURL=y +---- + +If your package needs more configuration options, you can add them to the +config snippet. For example, here's how you would test +libcurl+ with ++openssl+ as a TLS backend and the +curl+ program: + +---- +$ cat libcurl.config +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_CURL=y +BR2_PACKAGE_OPENSSL=y +---- + +Then run the +test-pkg+ script, by telling it what config snippet to use +and what package to test: + +---- +$ ./support/scripts/test-pkg -c libcurl.config -p libcurl +---- + +This will try to build your package against all the toolchains used +by the autobuilders (except for the internal toolchains, because it takes +too long to do so). The output lists all toolchains and the corresponding +result (excerpt, results are fake): + +---- +$ ./support/scripts/test-pkg -c libcurl.config -p libcurl + armv5-ctng-linux-gnueabi: OK + armv7-ctng-linux-gnueabihf: OK + br-aarch64-glibc: SKIPPED + br-arcle-hs38: SKIPPED + br-arm-basic: FAILED + br-arm-cortex-a9-glibc: OK + br-arm-cortex-a9-musl: FAILED + br-arm-cortex-m4-full: OK + br-arm-full: OK + br-arm-full-nothread: OK + br-arm-full-static: OK +11 builds, 2 skipped, 2 failed +---- + +The results mean: + +* `OK`: the build was successful. +* `SKIPPED`: one or more configuration options listed in the config + snippet were not present in the final configuration. This is due to + options having dependencies not satisfied by the toolchain, such as + for example a package that +depends on BR2_USE_MMU+ with a noMMU + toolchain. The missing options are reported in +config.missing+ in + the output build directory (+~/br-test-pkg/TOOLCHAIN_NAME/+ by + default). +* `FAILED`: the build failed. Inspect the +logfile+ file in the output + build directory to see what went wrong: +** the actual build failed, +** one of the preliminary steps (downloading the config file, applying + the configuration, running `dirclean` for the package) failed. + +When there are failures, you can just re-run the script with the same +options (after you fixed your package); the script will attempt to +re-build the package specified with +-p+ for all toolchains, without +the need to re-build all the dependencies of that package. + +The +test-pkg+ script accepts a few options, for which you can get some +help by running: + +---- +$ ./support/scripts/test-pkg -h +---- [[github-download-url]] ==== How to add a package from GitHub
docs/manual/adding-packages.txt +3 -0
@@ -9,6 +9,9 @@ applications) can be integrated into Buildroot. It also shows how existing packages are integrated, which is needed for fixing issues or tuning their configuration. +When you add a new package, be sure to test it in various conditions; +see xref:testing-package[] + include::adding-packages-directory.txt[] include::adding-packages-generic.txt[]
Signature · 1 line
2.11.0
Thomas Petazzoni
AppliedPATCH v5 1/13 docs/manual: document the test-pkg script
Hello,
Quoted 11 lines · Arnout Vandecappelle (Essensium/Mind)
From: "Yann E. MORIN" <[email protected]>
Signed-off-by "Yann E. MORIN" <[email protected]>---
Changes v4 -> v5:
Yann:
- enhance the description for SKIPPED (Thomas)
- typoes (Thomas)
Arnout:
- additional fixes of typing and wording
Quoted 4 lines
--- docs/manual/adding-packages-tips.txt | 93 ++++++++++++++++++++++++++++++++++++ docs/manual/adding-packages.txt | 3 ++ 2 files changed, 96 insertions(+)
Applied to master, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v5 2/13 support/test-pkg: print number of toolchains and progress
In reply to Arnout Vandecappelle (Essensium/Mind)From: "Yann E. MORIN" <[email protected]>
---
Changes v4 -> v5 by Arnout:
- toolchain -> toolchains in commit message
- rebase
--- docs/manual/adding-packages-tips.txt | 22 +++++++++++----------- support/scripts/test-pkg | 24 +++++++++--------------- 2 files changed, 20 insertions(+), 26 deletions(-)
docs/manual/adding-packages-tips.txt +11 -11
@@ -84,17 +84,17 @@ result (excerpt, results are fake): ---- $ ./support/scripts/test-pkg -c libcurl.config -p libcurl - armv5-ctng-linux-gnueabi: OK - armv7-ctng-linux-gnueabihf: OK - br-aarch64-glibc: SKIPPED - br-arcle-hs38: SKIPPED - br-arm-basic: FAILED - br-arm-cortex-a9-glibc: OK - br-arm-cortex-a9-musl: FAILED - br-arm-cortex-m4-full: OK - br-arm-full: OK - br-arm-full-nothread: OK - br-arm-full-static: OK + armv5-ctng-linux-gnueabi [ 1/11]: OK + armv7-ctng-linux-gnueabihf [ 2/11]: OK + br-aarch64-glibc [ 3/11]: SKIPPED + br-arcle-hs38 [ 4/11]: SKIPPED + br-arm-basic [ 5/11]: FAILED + br-arm-cortex-a9-glibc [ 6/11]: OK + br-arm-cortex-a9-musl [ 7/11]: FAILED + br-arm-cortex-m4-full [ 8/11]: OK + br-arm-full [ 9/11]: OK + br-arm-full-nothread [10/11]: OK + br-arm-full-static [11/11]: OK 11 builds, 2 skipped, 2 failed ----
support/scripts/test-pkg +9 -15
@@ -6,7 +6,7 @@ TOOLCHAINS_URL='http://autobuild.buildroot.org/toolchains/configs/toolchain-conf main() { local o O opts local cfg dir pkg random toolchain - local ret nb nb_skip nb_fail + local ret nb nb_skip nb_fail nb_tc local -a toolchains o='hc:d:p:r:'
@@ -60,7 +60,8 @@ main() { ) ) - if [ ${#toolchains[@]} -eq 0 ]; then + nb_tc="${#toolchains[@]}" + if [ ${nb_tc} -eq 0 ]; then printf "error: no toolchain found (networking issue?)\n" >&2; exit 1 fi
@@ -68,13 +69,15 @@ main() { nb_skip=0 nb_fail=0 for toolchain in "${toolchains[@]}"; do + : $((nb++)) + printf "%40s [%*d/%d]: " "$(basename "${toolchain}" .config)" \ + ${#nb_tc} ${nb} ${nb_tc} build_one "${dir}" "${toolchain}" "${cfg}" "${pkg}" && ret=0 || ret=${?} case ${ret} in - (0) ;; - (1) : $((nb_skip++));; - (2) : $((nb_fail++));; + (0) printf "OK\n";; + (1) : $((nb_skip++)); printf "SKIPPED\n";; + (2) : $((nb_fail++)); printf "FAILED\n";; esac - : $((nb++)) done printf "%d builds, %d skipped, %d failed\n" ${nb} ${nb_skip} ${nb_fail}
@@ -90,13 +93,10 @@ build_one() { # Using basename(1) on a URL works nicely toolchain="$(basename "${url}" .config)" - printf "%40s: " "${toolchain}" - dir="${dir}/${toolchain}" mkdir -p "${dir}" if ! curl -s "${url}" >"${dir}/.config"; then - printf "FAILED\n" return 2 fi
@@ -109,7 +109,6 @@ build_one() { cat "${cfg}" >>"${dir}/.config" if ! make O="${dir}" olddefconfig > "${dir}/logfile" 2>&1; then - printf "FAILED\n" return 2 fi # We want all the options from the snippet to be present as-is (set
@@ -120,7 +119,6 @@ build_one() { # done in the same locale. comm -23 <(sort "${cfg}") <(sort "${dir}/.config") >"${dir}/missing.config" if [ -s "${dir}/missing.config" ]; then - printf "SKIPPED\n" return 1 fi # Remove file, it's empty anyway.
@@ -128,18 +126,14 @@ build_one() { if [ -n "${pkg}" ]; then if ! make O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then - printf "FAILED\n" return 2 fi fi # shellcheck disable=SC2086 if ! make O="${dir}" ${pkg} >> "${dir}/logfile" 2>&1; then - printf "FAILED\n" return 2 fi - - printf "OK\n" } help() {
Signature · 1 line
2.11.0
Thomas Petazzoni
AppliedPATCH v5 2/13 support/test-pkg: print number of toolchains and progress
Hello,
Quoted 5 lines · Arnout Vandecappelle (Essensium/Mind)
From: "Yann E. MORIN" <[email protected]>
Signed-off-by "Yann E. MORIN" <[email protected]>Cc Thomas De Schampheleire <[email protected]>
Quoted 8 lines
---
Changes v4 -> v5 by Arnout:
- toolchain -> toolchains in commit message
- rebase--- docs/manual/adding-packages-tips.txt | 22 +++++++++++----------- support/scripts/test-pkg | 24 +++++++++--------------- 2 files changed, 20 insertions(+), 26 deletions(-)
Applied to master, thanks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v5 3/13 support/test-pkg: calculate toolchain name only once
In reply to Arnout Vandecappelle (Essensium/Mind)From: "Yann E. MORIN" <[email protected]>
The toolchain name was calculated in main() for reporting to the user, and again in build_one() for creating the build directory. Calculate it only once, in main(), and pass the build directory as an argument to build_one().
---
I'm not sure why the mkdir is also moved up to main() - IMO, it fits better in build_one(). Yann, the original commit message was just "create build dir from caller", any reason _why_ you did that?
Changes v4 -> v5 by Arnout:
- Reword commit message
- Reorder patch series
--- support/scripts/test-pkg | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-)
support/scripts/test-pkg +8 -12
@@ -6,7 +6,7 @@ TOOLCHAINS_URL='http://autobuild.buildroot.org/toolchains/configs/toolchain-conf main() { local o O opts local cfg dir pkg random toolchain - local ret nb nb_skip nb_fail nb_tc + local ret nb nb_skip nb_fail nb_tc build_dir local -a toolchains o='hc:d:p:r:'
@@ -68,11 +68,14 @@ main() { nb=0 nb_skip=0 nb_fail=0 - for toolchain in "${toolchains[@]}"; do + for toolchainconfig in "${toolchains[@]}"; do : $((nb++)) - printf "%40s [%*d/%d]: " "$(basename "${toolchain}" .config)" \ - ${#nb_tc} ${nb} ${nb_tc} - build_one "${dir}" "${toolchain}" "${cfg}" "${pkg}" && ret=0 || ret=${?} + # Using basename(1) on a URL works nicely + toolchain="$(basename "${toolchainconfig}" .config)" + build_dir="${dir}/${toolchain}" + mkdir -p "${build_dir}" + printf "%40s [%*d/%d]: " "${toolchain}" ${#nb_tc} ${nb} ${nb_tc} + build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" && ret=0 || ret=${?} case ${ret} in (0) printf "OK\n";; (1) : $((nb_skip++)); printf "SKIPPED\n";;
@@ -88,13 +91,6 @@ build_one() { local url="${2}" local cfg="${3}" local pkg="${4}" - local toolchain - - # Using basename(1) on a URL works nicely - toolchain="$(basename "${url}" .config)" - - dir="${dir}/${toolchain}" - mkdir -p "${dir}" if ! curl -s "${url}" >"${dir}/.config"; then return 2
Signature · 1 line
2.11.0
PATCH v5 3/13 support/test-pkg: calculate toolchain name only once
Arnout, All,
On 2017-04-06 20:18 +0200, Arnout Vandecappelle (Essensium/Mind) spake thusly:
Quoted 7 lines
From: "Yann E. MORIN" <[email protected]>
The toolchain name was calculated in
main()for reporting to the user, and again inbuild_one()for creating the build directory. Calculate it only once, inmain(), and pass the build directory as an argument tobuild_one().
Quoted 6 lines
Signed-off-by "Yann E. MORIN" <[email protected]>---
I'm not sure why the mkdir is also moved up tomain()- IMO, it fits better inbuild_one(). Yann, the original commit message was just "create build dir from caller", any reason _why_ you did that?
Because when I initially did the legal-info step, it was in a spearate function, not in build_one, so it looked more logicial to create the directory in main().
But now it is not really meaningful anymore, indeed...
Regards,
Yann E. MORIN.
Quoted 56 lines
Changes v4 -> v5 by Arnout:
- Reword commit message
- Reorder patch series--- support/scripts/test-pkg | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-)support/scripts/test-pkg +8
-12@@ -6,7 +6,7 @@ TOOLCHAINS_URL='http://autobuild.buildroot.org/toolchains/configs/toolchain-conf main() { local o O opts local cfg dir pkg random toolchain - local ret nb nb_skip nb_fail nb_tc + local ret nb nb_skip nb_fail nb_tc build_dir local -a toolchains o='hc:d:p:r:'@@ -68,11 +68,14 @@ main() { nb=0 nb_skip=0 nb_fail=0 - for toolchain in "${toolchains[@]}"; do + for toolchainconfig in "${toolchains[@]}"; do : $((nb++)) - printf "%40s [%*d/%d]: " "$(basename "${toolchain}" .config)" \ - ${#nb_tc} ${nb} ${nb_tc} - build_one "${dir}" "${toolchain}" "${cfg}" "${pkg}" && ret=0 || ret=${?} + # Using basename(1) on a URL works nicely + toolchain="$(basename "${toolchainconfig}" .config)" + build_dir="${dir}/${toolchain}" + mkdir -p "${build_dir}" + printf "%40s [%*d/%d]: " "${toolchain}" ${#nb_tc} ${nb} ${nb_tc} + build_one "${build_dir}" "${toolchainconfig}" "${cfg}" "${pkg}" && ret=0 || ret=${?} case ${ret} in (0) printf "OK\n";; (1) : $((nb_skip++)); printf "SKIPPED\n";;@@ -88,13 +91,6 @@ build_one() { local url="${2}" local cfg="${3}" local pkg="${4}" - local toolchain - - # Using basename(1) on a URL works nicely - toolchain="$(basename "${url}" .config)" - - dir="${dir}/${toolchain}" - mkdir -p "${dir}" if ! curl -s "${url}" >"${dir}/.config"; then return 2Signature · 1 line
2.11.0
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 3/13 support/test-pkg: calculate toolchain name only once
Quoted 17 lines · Yann E. MORIN
Arnout, All,
On 2017-04-06 20:18 +0200, Arnout Vandecappelle (Essensium/Mind) spake thusly:
Quoted 7 lines
From: "Yann E. MORIN" <[email protected]>
The toolchain name was calculated in
main()for reporting to the user, and again inbuild_one()for creating the build directory. Calculate it only once, inmain(), and pass the build directory as an argument tobuild_one().Quoted 6 lines
Signed-off-by "Yann E. MORIN" <[email protected]>---
I'm not sure why the mkdir is also moved up tomain()- IMO, it fits better inbuild_one(). Yann, the original commit message was just "create build dir from caller", any reason _why_ you did that?
Quoted 5 lines
Because when I initially did the legal-info step, it was in a spearate function, not in
build_one, so it looked more logicial to create the directory inmain().But now it is not really meaningful anymore, indeed...
OK, in v6 it will move back down into build_one.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v5 4/13 support/test-pkg: run legal-info
In reply to Arnout Vandecappelle (Essensium/Mind)From: "Yann E. MORIN" <[email protected]>
---
Changes v4 -> v5 by Arnout:
- Reorder patch series
--- docs/manual/adding-packages-tips.txt | 5 +++-- support/scripts/test-pkg | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-)
docs/manual/adding-packages-tips.txt +3 -2
@@ -93,9 +93,9 @@ $ ./support/scripts/test-pkg -c libcurl.config -p libcurl br-arm-cortex-a9-musl [ 7/11]: FAILED br-arm-cortex-m4-full [ 8/11]: OK br-arm-full [ 9/11]: OK - br-arm-full-nothread [10/11]: OK + br-arm-full-nothread [10/11]: FAILED br-arm-full-static [11/11]: OK -11 builds, 2 skipped, 2 failed +11 builds, 2 skipped, 2 build failed, 1 legal-info failed ---- The results mean:
@@ -111,6 +111,7 @@ The results mean: * `FAILED`: the build failed. Inspect the +logfile+ file in the output build directory to see what went wrong: ** the actual build failed, +** the legal-info failed, ** one of the preliminary steps (downloading the config file, applying the configuration, running `dirclean` for the package) failed.
support/scripts/test-pkg +13 -2
@@ -6,7 +6,7 @@ TOOLCHAINS_URL='http://autobuild.buildroot.org/toolchains/configs/toolchain-conf main() { local o O opts local cfg dir pkg random toolchain - local ret nb nb_skip nb_fail nb_tc build_dir + local ret nb nb_skip nb_fail nb_legal nb_tc build_dir local -a toolchains o='hc:d:p:r:'
@@ -68,6 +68,7 @@ main() { nb=0 nb_skip=0 nb_fail=0 + nb_legal=0 for toolchainconfig in "${toolchains[@]}"; do : $((nb++)) # Using basename(1) on a URL works nicely
@@ -80,10 +81,12 @@ main() { (0) printf "OK\n";; (1) : $((nb_skip++)); printf "SKIPPED\n";; (2) : $((nb_fail++)); printf "FAILED\n";; + (3) : $((nb_legal++)); printf "FAILED\n";; esac done - printf "%d builds, %d skipped, %d failed\n" ${nb} ${nb_skip} ${nb_fail} + printf "%d builds, %d skipped, %d build failed, %d legal-info failed\n" \ + ${nb} ${nb_skip} ${nb_fail} ${nb_legal} } build_one() {
@@ -130,6 +133,14 @@ build_one() { if ! make O="${dir}" ${pkg} >> "${dir}/logfile" 2>&1; then return 2 fi + + # legal-info done systematically, because some packages have different + # sources depending on the configuration (e.g. lua-5.2 vs. lua-5.3) + if [ -n "${pkg}" ]; then + if ! make O="${dir}" "${pkg}-legal-info" >> "${dir}/logfile" 2>&1; then + return 3 + fi + fi } help() {
Signature · 1 line
2.11.0
PATCH v5 5/13 Makefile: support defconfigs in subdirectories
In reply to Arnout Vandecappelle (Essensium/Mind)The pattern rule %_defconfig doesn't support a pattern that includes a / because of the following weird make behavior. From the GNU make info page:
When the target pattern does not contain a slash (and it usually does not), directory names in the file names are removed from the file name before it is compared with the target prefix and suffix. After the comparison of the file name to the target pattern, the directory names, along with the slash that ends them, are added on to the prerequisite file names generated from the pattern rule's prerequisite patterns and the file name.
In other words, foo/bar_defconfig would depend on foo/configs/bar_defconfig instead of configs/foo/bar_defconfig.
As a workaround, introduce an intermediate target that does contain a / and where the pattern is at the beginning: %/.../defconfig. Since this target does contain a /, the weird splitting of the pattern doesn't occur and we can make that target depend on .../configs/%_defconfig.
It gets slightly more complicated still because chains of pattern rules only work if they all have commands. So we need to add a dummy command for the %_defconfig rule.
--- Makefile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
Makefile +10 -3
@@ -895,10 +895,17 @@ defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN) define percent_defconfig +# Introduce a phony intermediate target to handle / in the pattern. +# make puts anything up to the / in the beginning if the target pattern doesn't +# contain a /. Without the intermediate, foo/bar_defconfig would depend on +# foo/$(1)/configs/bar_defconfig instead of $(1)/configs/foo/bar_defconfig. +.PHONY: %$(1)/defconfig +%_defconfig: %$(1)/defconfig + @: dummy command to make chain of phony targets work # Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig -%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig - @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \ - $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN) +%$(1)/defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig prepare-kconfig + @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$*_defconfig \ + $$< --defconfig=$(1)/configs/$$*_defconfig $$(CONFIG_CONFIG_IN) endef $(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep)))
Signature · 1 line
2.11.0
PATCH v5 6/13 configs: add autobuild toolchain defconfigs
In reply to Arnout Vandecappelle (Essensium/Mind)We currently have a list of toolchain configurations that are used by the autobuilders at [1]. However, this makes it a little more difficult for people to use these configurations, and also to have a different list of configurations for different branches. For example if a new architecture is introduced, the 2017.02.x branch doesn't have support for this architecture yet so it shouldn't try to run those configs.
Therefore, include the autobuild defconfigs directly in Buildroot, so they can be branched together with the rest. To avoid polluting the configs/ directory too much, the autobuild defconfigs are kept in an "autobuild" subdirectory.
Generated with
wget -nd --no-parent --recursive http://autobuild.buildroot.net/toolchains/configs/
mmv '*.config' '#1_defconfig'
The toolchain CSV file [1] contained some additional information, but this information turns out not to be needed.
- The hostarch required by the toolchain binary. This is used by the autobuild script to avoid trying a toolchain that it cannot use. However, it is better that the autobuild script instead just checks if all the options specified in the toolchain config are still selected after creating a full config, like is done in the test-pkg script. That's much more robust against other things that might block a toolchain from being used.
- The libc used. This is used only for one thing: to let the autobuild script decide if it should try to enable BR2_STATIC_LIBS or not. However, that line can just be added unconditionally: for glibc toolchains, it will get removed again, no harm done.
[1] http://autobuild.buildroot.net/toolchains/configs/toolchain-configs.csv
---
v2: Refresh after rebuild of the br-* toolchains
Don't add HOSTARCH, it's not needed as explained above
Note: I choose to name them xxx_defconfig and put them under to configs directory so they can be used directly as a quick way to set up a build with an external toolchain. However, neither test-pkg nor autobuild-run will use them as _defconfig, so we could just as well call them *.config and put them under e.g. support/autobuild-toolchains. Let me know what you think.
--- configs/autobuild/armv5-ctng-linux-gnueabi_defconfig | 10 ++++++++++ configs/autobuild/armv7-ctng-linux-gnueabihf_defconfig | 13 +++++++++++++ configs/autobuild/br-aarch64-glibc_defconfig | 9 +++++++++ configs/autobuild/br-arc-full-internal_defconfig | 3 +++ configs/autobuild/br-arcle-hs38_defconfig | 10 ++++++++++ configs/autobuild/br-arm-basic_defconfig | 8 ++++++++ configs/autobuild/br-arm-cortex-a9-glibc_defconfig | 11 +++++++++++ configs/autobuild/br-arm-cortex-a9-musl_defconfig | 11 +++++++++++ configs/autobuild/br-arm-cortex-m4-full_defconfig | 12 ++++++++++++ configs/autobuild/br-arm-full-nothread_defconfig | 11 +++++++++++ configs/autobuild/br-arm-full-static_defconfig | 11 +++++++++++ configs/autobuild/br-arm-full_defconfig | 10 ++++++++++ configs/autobuild/br-arm-internal-full_defconfig | 6 ++++++ configs/autobuild/br-bfin-full_defconfig | 12 ++++++++++++ configs/autobuild/br-i386-pentium-mmx-musl_defconfig | 10 ++++++++++ configs/autobuild/br-i386-pentium4-full_defconfig | 10 ++++++++++ configs/autobuild/br-m68k-5208-full_defconfig | 11 +++++++++++ configs/autobuild/br-m68k-68040-full_defconfig | 10 ++++++++++ configs/autobuild/br-microblazeel-full-internal_defconfig | 1 + configs/autobuild/br-microblazeel-full_defconfig | 10 ++++++++++ configs/autobuild/br-mips32r6-el-hf-glibc_defconfig | 11 +++++++++++ configs/autobuild/br-mips64-n64-full_defconfig | 10 ++++++++++ configs/autobuild/br-mips64r6-el-hf-glibc_defconfig | 12 ++++++++++++ configs/autobuild/br-mipsel-o32-full_defconfig | 10 ++++++++++ configs/autobuild/br-nios2-glibc_defconfig | 9 +++++++++ configs/autobuild/br-openrisc-uclibc_defconfig | 10 ++++++++++ configs/autobuild/br-powerpc-603e-basic-cpp_defconfig | 10 ++++++++++ configs/autobuild/br-powerpc-e500mc-full_defconfig | 11 +++++++++++ configs/autobuild/br-powerpc-internal-full_defconfig | 5 +++++ configs/autobuild/br-powerpc64-power7-glibc_defconfig | 9 +++++++++ configs/autobuild/br-powerpc64le-power8-glibc_defconfig | 9 +++++++++ configs/autobuild/br-sh4-full_defconfig | 10 ++++++++++ configs/autobuild/br-sparc-uclibc_defconfig | 9 +++++++++ configs/autobuild/br-sparc64-glibc_defconfig | 8 ++++++++ configs/autobuild/br-x86-64-core2-full_defconfig | 11 +++++++++++ configs/autobuild/br-x86-64-musl_defconfig | 10 ++++++++++ configs/autobuild/br-xtensa-full-internal_defconfig | 4 ++++ configs/autobuild/br-xtensa-full_defconfig | 9 +++++++++ configs/autobuild/i686-ctng-linux-gnu_defconfig | 10 ++++++++++ configs/autobuild/linaro-aarch64_defconfig | 2 ++ configs/autobuild/linaro-arm_defconfig | 4 ++++ configs/autobuild/mips64el-ctng_n32-linux-gnu_defconfig | 9 +++++++++ configs/autobuild/mips64el-ctng_n64-linux-gnu_defconfig | 11 +++++++++++ .../autobuild/powerpc-ctng_e500v2-linux-gnuspe_defconfig | 11 +++++++++++ configs/autobuild/sourcery-arm-armv4t_defconfig | 4 ++++ configs/autobuild/sourcery-arm-thumb2_defconfig | 6 ++++++ configs/autobuild/sourcery-arm_defconfig | 3 +++ configs/autobuild/sourcery-mips64_defconfig | 5 +++++ configs/autobuild/sourcery-mips_defconfig | 4 ++++ configs/autobuild/sourcery-nios2_defconfig | 2 ++ configs/autobuild/sourcery-sh_defconfig | 4 ++++ configs/autobuild/sourcery-x86-64_defconfig | 4 ++++ configs/autobuild/sourcery-x86_defconfig | 3 +++ configs/autobuild/x86_64-ctng_locales-linux-gnu_defconfig | 11 +++++++++++ 54 files changed, 449 insertions(+) create mode 100644 configs/autobuild/armv5-ctng-linux-gnueabi_defconfig create mode 100644 configs/autobuild/armv7-ctng-linux-gnueabihf_defconfig create mode 100644 configs/autobuild/br-aarch64-glibc_defconfig create mode 100644 configs/autobuild/br-arc-full-internal_defconfig create mode 100644 configs/autobuild/br-arcle-hs38_defconfig create mode 100644 configs/autobuild/br-arm-basic_defconfig create mode 100644 configs/autobuild/br-arm-cortex-a9-glibc_defconfig create mode 100644 configs/autobuild/br-arm-cortex-a9-musl_defconfig create mode 100644 configs/autobuild/br-arm-cortex-m4-full_defconfig create mode 100644 configs/autobuild/br-arm-full-nothread_defconfig create mode 100644 configs/autobuild/br-arm-full-static_defconfig create mode 100644 configs/autobuild/br-arm-full_defconfig create mode 100644 configs/autobuild/br-arm-internal-full_defconfig create mode 100644 configs/autobuild/br-bfin-full_defconfig create mode 100644 configs/autobuild/br-i386-pentium-mmx-musl_defconfig create mode 100644 configs/autobuild/br-i386-pentium4-full_defconfig create mode 100644 configs/autobuild/br-m68k-5208-full_defconfig create mode 100644 configs/autobuild/br-m68k-68040-full_defconfig create mode 100644 configs/autobuild/br-microblazeel-full-internal_defconfig create mode 100644 configs/autobuild/br-microblazeel-full_defconfig create mode 100644 configs/autobuild/br-mips32r6-el-hf-glibc_defconfig create mode 100644 configs/autobuild/br-mips64-n64-full_defconfig create mode 100644 configs/autobuild/br-mips64r6-el-hf-glibc_defconfig create mode 100644 configs/autobuild/br-mipsel-o32-full_defconfig create mode 100644 configs/autobuild/br-nios2-glibc_defconfig create mode 100644 configs/autobuild/br-openrisc-uclibc_defconfig create mode 100644 configs/autobuild/br-powerpc-603e-basic-cpp_defconfig create mode 100644 configs/autobuild/br-powerpc-e500mc-full_defconfig create mode 100644 configs/autobuild/br-powerpc-internal-full_defconfig create mode 100644 configs/autobuild/br-powerpc64-power7-glibc_defconfig create mode 100644 configs/autobuild/br-powerpc64le-power8-glibc_defconfig create mode 100644 configs/autobuild/br-sh4-full_defconfig create mode 100644 configs/autobuild/br-sparc-uclibc_defconfig create mode 100644 configs/autobuild/br-sparc64-glibc_defconfig create mode 100644 configs/autobuild/br-x86-64-core2-full_defconfig create mode 100644 configs/autobuild/br-x86-64-musl_defconfig create mode 100644 configs/autobuild/br-xtensa-full-internal_defconfig create mode 100644 configs/autobuild/br-xtensa-full_defconfig create mode 100644 configs/autobuild/i686-ctng-linux-gnu_defconfig create mode 100644 configs/autobuild/linaro-aarch64_defconfig create mode 100644 configs/autobuild/linaro-arm_defconfig create mode 100644 configs/autobuild/mips64el-ctng_n32-linux-gnu_defconfig create mode 100644 configs/autobuild/mips64el-ctng_n64-linux-gnu_defconfig create mode 100644 configs/autobuild/powerpc-ctng_e500v2-linux-gnuspe_defconfig create mode 100644 configs/autobuild/sourcery-arm-armv4t_defconfig create mode 100644 configs/autobuild/sourcery-arm-thumb2_defconfig create mode 100644 configs/autobuild/sourcery-arm_defconfig create mode 100644 configs/autobuild/sourcery-mips64_defconfig create mode 100644 configs/autobuild/sourcery-mips_defconfig create mode 100644 configs/autobuild/sourcery-nios2_defconfig create mode 100644 configs/autobuild/sourcery-sh_defconfig create mode 100644 configs/autobuild/sourcery-x86-64_defconfig create mode 100644 configs/autobuild/sourcery-x86_defconfig create mode 100644 configs/autobuild/x86_64-ctng_locales-linux-gnu_defconfig
configs/autobuild/armv5-ctng-linux-gnueabi_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_arm=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/armv5-ctng-linux-gnueabi.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="armv5-ctng-linux-gnueabi" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/armv7-ctng-linux-gnueabihf_defconfig new file +13 -0
@@ -0,0 +1,13 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_NEON=y +BR2_ARM_ENABLE_VFP=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/armv7-ctng-linux-gnueabihf.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="armv7-ctng-linux-gnueabihf" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-aarch64-glibc_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_aarch64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-aarch64-glibc-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arc-full-internal_defconfig new file +3 -0
@@ -0,0 +1,3 @@ +BR2_arcle=y +BR2_TOOLCHAIN_BUILDROOT_LOCALE=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y
configs/autobuild/br-arcle-hs38_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_arcle=y +BR2_archs38=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arcle-hs38-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_6=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-basic_defconfig new file +8 -0
@@ -0,0 +1,8 @@ +BR2_arm=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-basic-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
configs/autobuild/br-arm-cortex-a9-glibc_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_VFP=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-cortex-a9-glibc-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_6=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-cortex-a9-musl_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_arm=y +BR2_cortex_a9=y +BR2_ARM_ENABLE_VFP=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-cortex-a9-musl-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-cortex-m4-full_defconfig new file +12 -0
@@ -0,0 +1,12 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-cortex-m4-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-full-nothread_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_arm=y +BR2_arm1176jzf_s=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm11-full-nothread-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-full-static_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_arm=y +BR2_STATIC_LIBS=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-static-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_arm=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-arm-internal-full_defconfig new file +6 -0
@@ -0,0 +1,6 @@ +BR2_arm=y +BR2_ARM_EABI=y +BR2_UCLIBC_VERSION_NG=y +BR2_TOOLCHAIN_BUILDROOT_LOCALE=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y
configs/autobuild/br-bfin-full_defconfig new file +12 -0
@@ -0,0 +1,12 @@ +BR2_bfin=y +BR2_bf512=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-bfin-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_6=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-i386-pentium-mmx-musl_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_x86_pentium_mmx=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-i386-pentium-mmx-musl-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_SSP is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-i386-pentium4-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_x86_pentium4=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-i386-pentium4-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-m68k-5208-full_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_m68k=y +BR2_m68k_cf5208=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-m68k-5208-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-m68k-68040-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_m68k=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-m68k-68040-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-microblazeel-full-internal_defconfig new file +1 -0
@@ -0,0 +1 @@ +BR2_microblazeel=y
configs/autobuild/br-microblazeel-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_microblazeel=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-microblaze-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-mips32r6-el-hf-glibc_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_mipsel=y +BR2_mips_32r6=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-mips32r6-el-hf-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-mips64-n64-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_mips64el=y +BR2_MIPS_NABI64=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-mips64-n64-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-mips64r6-el-hf-glibc_defconfig new file +12 -0
@@ -0,0 +1,12 @@ +BR2_mips64el=y +BR2_mips_64r6=y +BR2_MIPS_NABI64=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-mips64r6-n64-el-hf-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-mipsel-o32-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_mipsel=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-mipsel-o32-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-nios2-glibc_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_nios2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-nios2-full-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-openrisc-uclibc_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_or1k=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-openrisc-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-powerpc-603e-basic-cpp_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_powerpc=y +BR2_powerpc_603e=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-powerpc-603e-basic-cpp-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-powerpc-e500mc-full_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_powerpc=y +BR2_powerpc_e500mc=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-powerpc-e500mc-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-powerpc-internal-full_defconfig new file +5 -0
@@ -0,0 +1,5 @@ +BR2_powerpc=y +BR2_TOOLCHAIN_BUILDROOT_INET_IPV6=y +BR2_TOOLCHAIN_BUILDROOT_LOCALE=y +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y
configs/autobuild/br-powerpc64-power7-glibc_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_powerpc64=y +BR2_powerpc_power7=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-powerpc64-power7-glibc-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-powerpc64le-power8-glibc_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_powerpc64le=y +BR2_powerpc_power8=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.net/toolchains/tarballs/br-powerpc64le-power8-glibc-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-sh4-full_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_sh=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-sh4-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-sparc-uclibc_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_sparc=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-sparc-uclibc-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-sparc64-glibc_defconfig new file +8 -0
@@ -0,0 +1,8 @@ +BR2_sparc64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-sparc64-full-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-x86-64-core2-full_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_x86_64=y +BR2_x86_core2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-x86-64-core2-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-x86-64-musl_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_x86_64=y +BR2_x86_atom=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-x86-64-musl-2017.02-744-g40962a0.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/br-xtensa-full-internal_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +BR2_xtensa=y +BR2_JLEVEL=8 +BR2_TOOLCHAIN_BUILDROOT_LOCALE=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y
configs/autobuild/br-xtensa-full_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_xtensa=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-xtensa-full-2017.02-756-gae15148.tar.bz2" +BR2_TOOLCHAIN_EXTERNAL_GCC_5=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_10=y +BR2_TOOLCHAIN_EXTERNAL_LOCALE=y +# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/i686-ctng-linux-gnu_defconfig new file +10 -0
@@ -0,0 +1,10 @@ +BR2_x86_i686=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/i686-ctng-linux-gnu.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="i686-ctng-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/linaro-aarch64_defconfig new file +2 -0
@@ -0,0 +1,2 @@ +BR2_aarch64=y +BR2_TOOLCHAIN_EXTERNAL=y
configs/autobuild/linaro-arm_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_ARM_EABIHF=y +BR2_TOOLCHAIN_EXTERNAL=y
configs/autobuild/mips64el-ctng_n32-linux-gnu_defconfig new file +9 -0
@@ -0,0 +1,9 @@ +BR2_mips64el=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/mips64el-ctng_n32-linux-gnu.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="mips64el-ctng_n32-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/mips64el-ctng_n64-linux-gnu_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_mips64el=y +BR2_MIPS_NABI64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/mips64el-ctng_n64-linux-gnu.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="mips64el-ctng_n64-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/powerpc-ctng_e500v2-linux-gnuspe_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_powerpc=y +BR2_powerpc_8548=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/powerpc-ctng_e500v2-linux-gnuspe.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="powerpc-ctng_e500v2-linux-gnuspe" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_7=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
configs/autobuild/sourcery-arm-armv4t_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +BR2_arm=y +BR2_arm920t=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y
configs/autobuild/sourcery-arm-thumb2_defconfig new file +6 -0
@@ -0,0 +1,6 @@ +BR2_arm=y +BR2_cortex_a8=y +BR2_ARM_EABI=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION=""
configs/autobuild/sourcery-arm_defconfig new file +3 -0
@@ -0,0 +1,3 @@ +BR2_arm=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y
configs/autobuild/sourcery-mips64_defconfig new file +5 -0
@@ -0,0 +1,5 @@ +BR2_mips64el=y +BR2_mips_64r2=y +BR2_MIPS_NABI64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS=y
configs/autobuild/sourcery-mips_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +BR2_mips=y +BR2_mips_32r2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS=y
configs/autobuild/sourcery-nios2_defconfig new file +2 -0
@@ -0,0 +1,2 @@ +BR2_nios2=y +BR2_TOOLCHAIN_EXTERNAL=y
configs/autobuild/sourcery-sh_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +BR2_sh=y +BR2_sh4a=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH=y
configs/autobuild/sourcery-x86-64_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +BR2_x86_64=y +BR2_x86_steamroller=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64=y
configs/autobuild/sourcery-x86_defconfig new file +3 -0
@@ -0,0 +1,3 @@ +BR2_x86_pentium4=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86=y
configs/autobuild/x86_64-ctng_locales-linux-gnu_defconfig new file +11 -0
@@ -0,0 +1,11 @@ +BR2_x86_64=y +BR2_x86_corei7=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/x86_64-ctng_locales-linux-gnu.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="x86_64-ctng_locales-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CXX=y
Signature · 1 line
2.11.0
PATCH v5 6/13 configs: add autobuild toolchain defconfigs
Hello,
Quoted 6 lines · Arnout Vandecappelle (Essensium/Mind)
Note: I choose to name them
xxx_defconfigand put them under to configs directory so they can be used directly as a quick way to set up a build with an external toolchain. However, neither test-pkg nor autobuild-run will use them as_defconfig, so we could just as well call them *.config and put them under e.g. support/autobuild-toolchains. Let me know what you think.
It's not a fully clear-cut opinion, but I believe I have a preference for having those in support/<something>/ rather than as official defconfigs.
I don't think it makes much sense to advertise them as defconfigs. Those base configurations are very specialized, some of them use completely stupid toolchain configurations (ARM no thread, really?) that only exist for the sake of testing various combinations of toolchain features. So making those visible to random users along with real defconfigs for boards doesn't seem like a good idea.
Plus it avoids the need to support defconfigs in subfolders (even though I guess you went through great lengths to workaround make stupidity about how patterns without slashes are handled), and the big question of your last RFC patch on how to display them in "list-defconfigs".
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v5 6/13 configs: add autobuild toolchain defconfigs
Quoted 23 lines · Thomas Petazzoni
Hello,
Quoted 6 lines · Arnout Vandecappelle (Essensium/Mind)
Note: I choose to name them
xxx_defconfigand put them under to configs directory so they can be used directly as a quick way to set up a build with an external toolchain. However, neither test-pkg nor autobuild-run will use them as_defconfig, so we could just as well call them *.config and put them under e.g. support/autobuild-toolchains. Let me know what you think.It's not a fully clear-cut opinion, but I believe I have a preference for having those in support/<something>/ rather than as official defconfigs.
I don't think it makes much sense to advertise them as defconfigs. Those base configurations are very specialized, some of them use completely stupid toolchain configurations (ARM no thread, really?) that only exist for the sake of testing various combinations of toolchain features. So making those visible to random users along with real defconfigs for boards doesn't seem like a good idea.
Quoted 5 lines
Plus it avoids the need to support defconfigs in subfolders (even though I guess you went through great lengths to workaround make stupidity about how patterns without slashes are handled), and the big question of your last RFC patch on how to display them in "list-defconfigs".
Yeah, it's only at the last minute that I realized that there was no need for
them to be defconfigs. So at that point I just reworded the commit message and pressed send :-)
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v5 7/13 support/test-pkg: move minimal.config into a separate file
In reply to Arnout Vandecappelle (Essensium/Mind)This minimal configuration is also very useful outside test-pkg. In addition, it will simplify the config merge in a later patch.
--- support/misc/minimal.config | 6 ++++++ support/scripts/test-pkg | 8 +------- 2 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 support/misc/minimal.config
support/misc/minimal.config new file +6 -0
@@ -0,0 +1,6 @@ +# This config fragment disables Buildroot options that are turned on by +# default, in order to arrive at minimal build time. +BR2_INIT_NONE=y +BR2_SYSTEM_BIN_SH_NONE=y +# BR2_PACKAGE_BUSYBOX is not set +# BR2_TARGET_ROOTFS_TAR is not set
support/scripts/test-pkg +1 -7
@@ -99,13 +99,7 @@ build_one() { return 2 fi - cat >>"${dir}/.config" <<-_EOF_ - BR2_INIT_NONE=y - BR2_SYSTEM_BIN_SH_NONE=y - # BR2_PACKAGE_BUSYBOX is not set - # BR2_TARGET_ROOTFS_TAR is not set - _EOF_ - cat "${cfg}" >>"${dir}/.config" + cat "support/misc/minimal.config" "${cfg}" >>"${dir}/.config" if ! make O="${dir}" olddefconfig > "${dir}/logfile" 2>&1; then return 2
Signature · 1 line
2.11.0
PATCH v5 8/13 support/test-pkg: get configs from buildroot defconfigs
In reply to Arnout Vandecappelle (Essensium/Mind)Now we have the toolchain configs in the buildroot directory itself, it is no longer necessary to fetch it from the toolchain URL.
--- support/scripts/test-pkg | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-)
support/scripts/test-pkg +13 -16
@@ -1,7 +1,7 @@ #!/bin/bash set -e -TOOLCHAINS_URL='http://autobuild.buildroot.org/toolchains/configs/toolchain-configs.csv' +TOOLCHAINS_DIR=configs/autobuild main() { local o O opts
@@ -47,11 +47,10 @@ main() { dir="${HOME}/br-test-pkg" fi - # Extract the URLs of the toolchains; drop internal toolchains - # E.g.: http://server/path/to/name.config,arch,libc - # --> http://server/path/to/name.config - toolchains=($(curl -s "${TOOLCHAINS_URL}" \ - |sed -r -e 's/,.*//; /internal/d;' \ + # Find external toolchains + # shellcheck disable=SC2011 + toolchains=($(ls -1 "${TOOLCHAINS_DIR}"/*_defconfig \ + |xargs -r grep -l -F -x "BR2_TOOLCHAIN_EXTERNAL=y" \ |if [ ${random} -gt 0 ]; then \ sort -R |head -n ${random} else
@@ -62,7 +61,7 @@ main() { nb_tc="${#toolchains[@]}" if [ ${nb_tc} -eq 0 ]; then - printf "error: no toolchain found (networking issue?)\n" >&2; exit 1 + printf "error: no toolchain found\n" >&2; exit 1 fi nb=0
@@ -72,7 +71,7 @@ main() { for toolchainconfig in "${toolchains[@]}"; do : $((nb++)) # Using basename(1) on a URL works nicely - toolchain="$(basename "${toolchainconfig}" .config)" + toolchain="$(basename "${toolchainconfig}" _defconfig)" build_dir="${dir}/${toolchain}" mkdir -p "${build_dir}" printf "%40s [%*d/%d]: " "${toolchain}" ${#nb_tc} ${nb} ${nb_tc}
@@ -91,15 +90,11 @@ main() { build_one() { local dir="${1}" - local url="${2}" + local toolchainconfig="${2}" local cfg="${3}" local pkg="${4}" - if ! curl -s "${url}" >"${dir}/.config"; then - return 2 - fi - - cat "support/misc/minimal.config" "${cfg}" >>"${dir}/.config" + cat "${toolchainconfig}" "support/misc/minimal.config" "${cfg}" >>"${dir}/.config" if ! make O="${dir}" olddefconfig > "${dir}/logfile" 2>&1; then return 2
@@ -151,8 +146,10 @@ In case failures are noticed, you can fix the package and just re-run the same command again; it will re-run the test where it failed. If you did specify a package (with -p), the package build dir will be removed first. -The list of toolchains is retrieved from the Buildroot autobuilders, available -at ${TOOLCHAINS_URL}. +The toolchains to try are retrieved from ${TOOLCHAINS_DIR}. This directory +contains a defconfig file for each toolchain configuration used by the +autobuilders. Only the external toolchains are tried, because building a +Buildroot toolchain would take too long. Options:
Signature · 1 line
2.11.0
PATCH v5 8/13 support/test-pkg: get configs from buildroot defconfigs
Hello,
Quoted 5 lines · Arnout Vandecappelle (Essensium/Mind)
Now we have the toolchain configs in the buildroot directory itself, it is no longer necessary to fetch it from the toolchain URL.
Cc Yann E. MORIN <[email protected]>
On the principle, I am OK with this direction, but it is needs to be coordinated with a change to autobuild-run to also use the base autobuild defconfigs from the Buildroot tree. Otherwise, we will have two copies: one used by people running test-pkg, one used by the actual autobuilders. It is not difficult to see those two copies quickly getting out of sync.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v5 8/13 support/test-pkg: get configs from buildroot defconfigs
Thomas, All,
On 2017-04-06 21:37 +0200, Thomas Petazzoni spake thusly:
Quoted 8 lines
Quoted 5 lines · Arnout Vandecappelle (Essensium/Mind)
Now we have the toolchain configs in the buildroot directory itself, it is no longer necessary to fetch it from the toolchain URL.
Cc Yann E. MORIN <[email protected]>
Quoted 6 lines
On the principle, I am OK with this direction, but it is needs to be coordinated with a change to autobuild-run to also use the base autobuild defconfigs from the Buildroot tree. Otherwise, we will have two copies: one used by people running test-pkg, one used by the actual autobuilders. It is not difficult to see those two copies quickly getting out of sync.
I think the idea is not to sync, but to get rid of the toolchain configs in autobuild-run altogether, and only use those in the Buildroot tree.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 8/13 support/test-pkg: get configs from buildroot defconfigs
Hello,
Quoted 9 lines · Yann E. MORIN
Quoted 6 lines
On the principle, I am OK with this direction, but it is needs to be coordinated with a change to autobuild-run to also use the base autobuild defconfigs from the Buildroot tree. Otherwise, we will have two copies: one used by people running test-pkg, one used by the actual autobuilders. It is not difficult to see those two copies quickly getting out of sync.
I think the idea is not to sync, but to get rid of the toolchain configs in autobuild-run altogether, and only use those in the Buildroot tree.
Huh, you must have misunderstood what I wrote, or it wasn't clear.
My point was precisely that we want to avoid sync'ing them. But to achieve that the autobuild-run script needs to be changed to use base toolchain configs from the Buildroot tree rather than through the CSV file downloaded from autobuild.b.o. And I'm exactly saying that we need to change the autobuild-run script at the same time as we move base toolchain configs in the tree, otherwise we have duplication.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v5 8/13 support/test-pkg: get configs from buildroot defconfigs
Quoted 14 lines · Thomas Petazzoni
Hello,
Quoted 9 lines · Yann E. MORIN
Quoted 6 lines
On the principle, I am OK with this direction, but it is needs to be coordinated with a change to autobuild-run to also use the base autobuild defconfigs from the Buildroot tree. Otherwise, we will have two copies: one used by people running test-pkg, one used by the actual autobuilders. It is not difficult to see those two copies quickly getting out of sync.
I think the idea is not to sync, but to get rid of the toolchain configs in autobuild-run altogether, and only use those in the Buildroot tree.
Quoted 8 lines
Huh, you must have misunderstood what I wrote, or it wasn't clear.
My point was precisely that we want to avoid sync'ing them. But to achieve that the autobuild-run script needs to be changed to use base toolchain configs from the Buildroot tree rather than through the CSV file downloaded from autobuild.b.o. And I'm exactly saying that we need to change the autobuild-run script at the same time as we move base toolchain configs in the tree, otherwise we have duplication.
I'm working on updating autobuild-run. Unfortunately it's a bit difficult to
test changes in that script, e.g. removing the condition on BR2_STATIC_LIBS. I basically have to wait until the script hits a glibc toolchain to see if it works correctly. Can you think of any way to speed that up?
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH v5 8/13 support/test-pkg: get configs from buildroot defconfigs
Hello,
Quoted 4 lines · Arnout Vandecappelle
I'm working on updating autobuild-run. Unfortunately it's a bit difficult to
test changes in that script, e.g. removing the condition onBR2_STATIC_LIBS. I basically have to wait until the script hits a glibc toolchain to see if it works correctly. Can you think of any way to speed that up?
For this sort of situation, I was editing the CSV file to keep only the one toolchain I'm interested in. Or alternatively, hacking the function that chooses the toolchain to always pick up the one I'm interested in.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v5 9/13 support/test-pkg: add option to use an alternate toolchain directory
In reply to Arnout Vandecappelle (Essensium/Mind)For now, testing a package requires network access. However, there are situations where everything is already cached locally (especially the toolchains tarballs) and network is not available (e.g. in the train, travelling back from FOSDEM...)
Alternatively, one may also want to test against a subset of the default toolchains (e.g. the ones known to have a specific issue), or against additional toolchains (e.g. the ones used within the company).
Add an option to use an alternate directory containing the defconfigs of toolchains to try.
---
Loosely based on http://patchwork.ozlabs.org/patch/728395/ but with a directory instead of URL, and completely rewritten help text.
--- support/scripts/test-pkg | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-)
support/scripts/test-pkg +17 -5
@@ -5,16 +5,17 @@ TOOLCHAINS_DIR=configs/autobuild main() { local o O opts - local cfg dir pkg random toolchain + local cfg dir pkg random toolchains_dir toolchain local ret nb nb_skip nb_fail nb_legal nb_tc build_dir local -a toolchains - o='hc:d:p:r:' - O='help,config-snippet:build-dir:package:,random:' + o='hc:d:p:r:t:' + O='help,config-snippet:build-dir:package:,random:,toolchains-dir:' opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")" eval set -- "${opts}" random=0 + toolchains_dir="${TOOLCHAINS_DIR}" while [ ${#} -gt 0 ]; do case "${1}" in (-h|--help)
@@ -32,6 +33,9 @@ main() { (-r|--random) random="${2}"; shift 2 ;; + (-t|--toolchains-dir) + toolchains_dir="${2}"; shift 2 + ;; (--) shift; break ;;
@@ -49,7 +53,7 @@ main() { # Find external toolchains # shellcheck disable=SC2011 - toolchains=($(ls -1 "${TOOLCHAINS_DIR}"/*_defconfig \ + toolchains=($(ls -1 "${toolchains_dir}"/*_defconfig 2>/dev/null \ |xargs -r grep -l -F -x "BR2_TOOLCHAIN_EXTERNAL=y" \ |if [ ${random} -gt 0 ]; then \ sort -R |head -n ${random}
@@ -149,7 +153,11 @@ specify a package (with -p), the package build dir will be removed first. The toolchains to try are retrieved from ${TOOLCHAINS_DIR}. This directory contains a defconfig file for each toolchain configuration used by the autobuilders. Only the external toolchains are tried, because building a -Buildroot toolchain would take too long. +Buildroot toolchain would take too long. An alternative directory +containing defconfigs of toolchains to try can be specified with the -t +option. These defconfigs should contain only the toolchain and architecture +settings. Again, only defconfigs which specify an external toolchain will +be tried. Options:
@@ -171,6 +179,10 @@ Options: Limit the tests to the N randomly selected toolchains, instead of building with all toolchains. + -t DIR, --toolchain-dir DIR + Directory containing defconfigs of toolchains to try. If not specified, + the toolchains in ${TOOLCHAINS_DIR} will be used. + Example: Testing libcec would require a config snippet that contains:
Signature · 1 line
2.11.0
PATCH v5 10/13 Makefile: refactor *config targets
In reply to Arnout Vandecappelle (Essensium/Mind)The rules for the *config targets are all very similar, so factor them together using $@.
--- Makefile | 42 ++++++------------------------------------ 1 file changed, 6 insertions(+), 36 deletions(-)
Makefile +6 -36
@@ -846,50 +846,20 @@ config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig # no values are set for the legacy options so a subsequent oldconfig # will query them. Therefore, run an additional olddefconfig. -oldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - @$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN) - -randconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN) - @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null - -allyesconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN) - @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null - -allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN) - @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null - -randpackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg - @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ - KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ - $< --randconfig $(CONFIG_CONFIG_IN) - @rm -f $(CONFIG_DIR)/.config.nopkg +randconfig allyesconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig + @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null -allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig +randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ - $< --allyesconfig $(CONFIG_CONFIG_IN) + $< --$(subst package,,$@) $(CONFIG_CONFIG_IN) @rm -f $(CONFIG_DIR)/.config.nopkg @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null -allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg - @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ - KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ - $< --allnoconfig $(CONFIG_CONFIG_IN) - @rm -f $(CONFIG_DIR)/.config.nopkg - @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null - -silentoldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - $(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN) - -olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig - $(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) +oldconfig silentoldconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig + @$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN) defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
Signature · 1 line
2.11.0
PATCH v5 11/13 Makefile: add alldefconfig target
In reply to Arnout Vandecappelle (Essensium/Mind)It is used by Kconfig's merge_config.sh.
No alldefpackageconfig is added, since it's rather pointless: it would only enable busybox.
--- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Makefile +3 -2
@@ -126,7 +126,7 @@ DATE := $(shell date +%Y%m%d) export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion) noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ - defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \ + defconfig %_defconfig allyesconfig allnoconfig alldefconfig silentoldconfig release \ randpackageconfig allyespackageconfig allnopackageconfig \ print-version olddefconfig distclean manual manual-html manual-split-html \ manual-pdf manual-text manual-epub
@@ -846,7 +846,7 @@ config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig # no values are set for the legacy options so a subsequent oldconfig # will query them. Therefore, run an additional olddefconfig. -randconfig allyesconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig +randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
@@ -957,6 +957,7 @@ help: @echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)' @echo ' allyesconfig - New config where all options are accepted with yes' @echo ' allnoconfig - New config where all options are answered with no' + @echo ' alldefconfig - New config where all options are set to default' @echo ' randpackageconfig - New config with random answer to package options' @echo ' allyespackageconfig - New config where pkg options are accepted with yes' @echo ' allnopackageconfig - New config where package options are answered with no'
Signature · 1 line
2.11.0
PATCH v5 12/13 support/test-pkg: use merge_config.sh to merge the fragments
In reply to Arnout Vandecappelle (Essensium/Mind)It is supposedly more robust than just concatenating.
--- support/scripts/test-pkg | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
support/scripts/test-pkg +2 -4
@@ -98,11 +98,9 @@ build_one() { local cfg="${3}" local pkg="${4}" - cat "${toolchainconfig}" "support/misc/minimal.config" "${cfg}" >>"${dir}/.config" + support/kconfig/merge_config.sh -O "${dir}" \ + "${toolchainconfig}" "support/misc/minimal.config" "${cfg}" > /dev/null - if ! make O="${dir}" olddefconfig > "${dir}/logfile" 2>&1; then - return 2 - fi # We want all the options from the snippet to be present as-is (set # or not set) in the actual .config; if one of them is not, it means # some dependency from the toolchain or arch is not available, in
Signature · 1 line
2.11.0
RFC PATCH v5 13/13 list-defconfigs: support defconfigs in subdirectories
In reply to Arnout Vandecappelle (Essensium/Mind)Now defconfigs in subdirectories are supported, list-defconfigs should also report them.
The obvious way to do this would be to use
find $(1)/configs -name \*_defconfig
However, it is difficult to keep its output sorted properly: we don't want defconfigs in subdirectories to appear intermingled with the rest.
The output tends to become a little bit messy, because defconfigs in subdirectories will typically need more than 35 characters. If we can find a solution for that, it can be done in a later patch.
---
With the ugly output, and the uglification of the code, I'm not entirely sure that we really want this patch.
--- Makefile | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-)
Makefile +13 -11
@@ -1013,18 +1013,20 @@ help: # $(2): br2-external name, empty for bundled define list-defconfigs @first=true; \ - for defconfig in $(1)/configs/*_defconfig; do \ - [ -f "$${defconfig}" ] || continue; \ - if $${first}; then \ - if [ "$(2)" ]; then \ - printf 'External configs in "$(call qstrip,$(2))":\n'; \ - else \ - printf "Built-in configs:\n"; \ + for dir in `find $(1)/configs/ -type d`; do \ + for defconfig in $${dir}/*_defconfig; do \ + [ -f "$${defconfig}" ] || continue; \ + if $${first}; then \ + if [ "$(2)" ]; then \ + printf 'External configs in "$(call qstrip,$(2))":\n'; \ + else \ + printf "Built-in configs:\n"; \ + fi; \ + first=false; \ fi; \ - first=false; \ - fi; \ - defconfig="$${defconfig##*/}"; \ - printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \ + defconfig="$${defconfig##$(1)/configs/}"; \ + printf " %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \ + done; \ done; \ $${first} || printf "\n" endef
Signature · 1 line
2.11.0