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

Simon Glass sjg at chromium.org
Tue Aug 5 16:33:36 CEST 2014


Hi Jeroen,

On 4 August 2014 14:56, Jeroen Hofstee <jeroen at myspectrum.nl> wrote:
> Hello Simon,
>
>
> On 04-08-14 22:41, Simon Glass wrote:
>>
>> Hi Tom,
>>
>> On 4 August 2014 07:23, Tom Rini <trini at ti.com> wrote:
>>>
>>> On Mon, Jul 28, 2014 at 11:53:27PM -0600, Simon Glass wrote:
>>>
>>>> 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
>>>
>>> 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.

OK I will change that in v4.

>
>>> (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
>>>
>>> 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).
>>
>> 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)

With the v3 series you can use the -v option to display all output
while it builds. The -e option displays summarised information,
interned to avoid you getting the same error 100 times for 100
different boards.

>
>>> 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.
>>
>>> 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.
>>
>> 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.

OK I'll add a config file option.

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

Why does it always warn?

Regards,
Simon


More information about the U-Boot mailing list