Skip to content

Add some missing buildman features and deprecate MAKEALL

Jeroen Hofstee u-boot 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest0 of 3 patches 0 repliesNew

Patches in v2 No applies recorded yet

None of the 3 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [U-Boot] [PATCH v2 0/3] Add some missing buildman features and deprecate MAKEALL

Hello Simon,

Quoted 26 lines · Simon Glass

Hi Tom,

Quoted 23 lines · Tom Rini
Quoted 5 lines · Simon Glass

Buildman has been around for a little over a year and is used by a fair number of U-Boot developers. However quite a few people still use MAKEALL.

Buildman was intended to replace MAKEALL, so perhaps now is a good time to start that process.

OK, lets start. First, I had to make up a special directory with symlinks to the various toolchains, in order to get them to work with buildman, due to the various layouts:

$ ls -l ~/work/u-boot/toolchain-links/
total 4
lrwxrwxrwx 1 trini trini 38 Aug  1 17:09 arc_gnu_4.8-R2_prebuilt_uclibc_be -> /opt/arc_gnu_4.8-R2_prebuilt_uclibc_be
lrwxrwxrwx 1 trini trini 38 Aug  1 17:09 arc_gnu_4.8-R2_prebuilt_uclibc_le -> /opt/arc_gnu_4.8-R2_prebuilt_uclibc_le
lrwxrwxrwx 1 trini trini 24 Aug  1 17:10 bfin-elf -> /opt/uClinux-45/bfin-elf
lrwxrwxrwx 1 trini trini 32 Aug  1 17:09 m68k-linux -> /opt/gcc-4.9.0-nolibc/m68k-linux
lrwxrwxrwx 1 trini trini 34 Aug  1 17:09 microblazeel-xilinx-linux-gnu -> /opt/microblazeel-xilinx-linux-gnu
lrwxrwxrwx 1 trini trini 32 Aug  1 17:09 microblaze-xilinx-linux-gnu -> /opt/microblaze-xilinx-linux-gnu
lrwxrwxrwx 1 trini trini 66 Aug  1 17:15 mips32-linux -> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux
lrwxrwxrwx 1 trini trini 36 Aug  1 17:09 nds32le-linux-glibc-v1f -> /opt/nds32le/nds32le-linux-glibc-v1f
lrwxrwxrwx 1 trini trini 20 Aug  1 17:09 sparc-elf-3.4.4 -> /opt/sparc-elf-3.4.4
Quoted 4 lines
Quoted 2 lines

I tried a few things but I couldn't get a toolchain section setup that found all of those. Second:

OK, can you give me a trace of the output of 'buildman --list-tool-chains' - I should be able to figure out what is wrong.

Like Tom, I tried this a bit. (and ended up faking clang is gcc). There are at least some assumptions cc = gcc and strlen(cc) == 3.

Quoted 18 lines
Quoted 13 lines

(testing the MMC pull request)

$ ./tools/buildman/buildman -b master
'arc|blackfin|m68k|microblaze|nds32|sparc|mips'
No section: 'make-flags'
Building 11 commits for 121 boards (6 threads, 1 job per thread)
Cloning repo for thread 0
Cloning repo for thread 1
Cloning repo for thread 2
Cloning repo for thread 3
Cloning repo for thread 4
Cloning repo for thread 5
  1155   88   88 /1331   axs101
Quoted 5 lines

So it's nice that it spit out a thread per commit, but I really only care right now if master builds right. And I've gone blind and can't find the end result logs of what failed to build (88 failures doesn't quite match the warning/errors I get for my wrapper around toolchains+MAKEALL).

Quoted 5 lines

You can use the -s flag to see the broken builds, and -se to see errors also. Is that what you mean?

The output is in ../<branch>/<commit>/<board> but if you want to keep the binaries, you need -k also.

Like Tom, I saw fancy output, like merged not being a property or something. I like to see the warnings and errors directly, but -e? failed to do so. (or at least I didn't spend enough time to get it to work)

Quoted 9 lines
Quoted 1 line

I also didn't quite see how to plugin an arm64 toolchain.

I haven't tried - can you please point me to one and I'll give it a go.

Quoted 6 lines

Next up, is there some way to have multiple toolchains for an arch available? On some compute resources I have at work I throw arm/eldk4.2, arm/eldk5.2, arm/linaro-2013.03 (since we've pinned to that for some projects) and some various combos for powerpc as well. I didn't see how to do that with buildman aside from different ~/.buildman files per invocation.

Quoted 5 lines

Yes I remember you talking about this before. One option would be to add toolchain as a new dimension in the matrix. It might be painful though. So to be clear, you want to define multiple toolchains for an arch, and have buildman always build with all of them?

I would like this as well. For serious changing I typically build with MAKEALL with clang and gcc (for ARM) + gcc for powerpc if it is a overall change.

But since clang always warns it is actually not a viable target for buildman at all.

Regards,
Jeroen