Hi Tom, On 4 August 2014 15:23, Tom Rini <tr...@ti.com> wrote: > On Mon, Aug 04, 2014 at 02:41:45PM -0600, Simon Glass wrote: >> Hi Tom, >> >> On 4 August 2014 07:23, Tom Rini <tr...@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. > > Sure but I think the problem was I couldn't get it to recurse all the > way down, just a few levels (which isn't a bad thing exactly, it'd be > going pretty deep otherwise).
It looks at the path you give, and then appends bin/ and usr/bin as well. Then it looks for something ending in gcc in each directory. You may need to specify additional search paths to make this work. My output with ~/.buildman: # Buildman settings file [toolchain] root: / #rest: /home/sjg/c/buildall/toolchains/* #eldk: /opt/eldk4.2/usr/bin #arm: /home/sjg/c/tools/arm-unknown-eabi avr32: /home/sjg/c/buildall/toolchains/avr32 #m68k: /home/sjg/c/buildall/toolchains/m68k-linux m68k: /usr/local/m68k-uclinux-tools arm: /opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux eldk: /opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux [toolchain-alias] x86: i386 [make-flags] src=/home/sjg/c/src chroot=/home/sjg/c/chroot vboot=USE_STDINT=1 VBOOT_DEBUG=1 MAKEFLAGS_VBOOT=DEBUG=1 CFLAGS_EXTRA_VBOOT=-DUN ROLL_LOOPS VBOOT_SOURCE=${src}/platform/vboot_reference chromeos_coreboot=VBOOT=${chroot}/build/link/usr ${vboot} chromeos_daisy=VBOOT=${chroot}/build/daisy/usr ${vboot} is: ./tools/buildman/buildman --list-tool-chains Scanning for tool chains - scanning path '/' - looking in '/.' - looking in '/bin' - looking in '/usr/bin' - found '/usr/bin/gcc' Tool chain test: OK - found '/usr/bin/c89-gcc' Tool chain test: OK - found '/usr/bin/c99-gcc' Tool chain test: OK - found '/usr/bin/x86_64-linux-gnu-gcc' Tool chain test: OK - scanning path '/home/sjg/c/buildall/toolchains/avr32' - looking in '/home/sjg/c/buildall/toolchains/avr32/.' - looking in '/home/sjg/c/buildall/toolchains/avr32/bin' - looking in '/home/sjg/c/buildall/toolchains/avr32/usr/bin' - found '/home/sjg/c/buildall/toolchains/avr32/usr/bin/avr32-buildroot-linux-uclibc-gcc' Tool chain test: OK - found '/home/sjg/c/buildall/toolchains/avr32/usr/bin/avr32-linux-gcc' Tool chain test: OK - scanning path '/usr/local/m68k-uclinux-tools' - looking in '/usr/local/m68k-uclinux-tools/.' - looking in '/usr/local/m68k-uclinux-tools/bin' - looking in '/usr/local/m68k-uclinux-tools/usr/bin' - scanning path '/opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux' - looking in '/opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/.' - looking in '/opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/bin' - found '/opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/bin/arm-linux-gnueabihf-gcc' Tool chain test: OK - looking in '/opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/usr/bin' - scanning path '/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux' - looking in '/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/.' - found '/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/./powerpc-linux-gcc' Tool chain test: OK - found '/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/./powerpc-gcc' Tool chain test: OK - looking in '/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/bin' - looking in '/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/usr/bin' List of available toolchains (7): arm : /opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux/bin/arm-linux-gnueabihf-gcc avr32 : /home/sjg/c/buildall/toolchains/avr32/usr/bin/avr32-buildroot-linux-uclibc-gcc c89 : /usr/bin/c89-gcc c99 : /usr/bin/c99-gcc powerpc : /opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/./powerpc-linux-gcc sandbox : /usr/bin/gcc x86_64 : /usr/bin/x86_64-linux-gnu-gcc > >> > (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? > > That's closer, yeah. Oh, and -c 1 seems to do be what I want, except I > get: > $ ./tools/buildman/buildman -se 'blackfin' -c 1 > No section: 'make-flags' > Traceback (most recent call last): > File "./tools/buildman/buildman", line 135, in <module> > control.DoBuildman(options, args) > File "/home/trini/work/u-boot/u-boot/tools/buildman/control.py", line 138, > in DoBuildman > 1) > File > "/home/trini/work/u-boot/u-boot/tools/buildman/../patman/patchstream.py", > line 389, in GetMetaDataForList > stdout = command.RunPipe(pipe, capture=True).stdout > File "/home/trini/work/u-boot/u-boot/tools/buildman/../patman/command.py", > line 50, in RunPipe > user_pipestr = '|'.join([' '.join(pipe) for pipe in pipe_list]) > TypeError: sequence item 8: expected string, NoneType found That's because it doesn't have a branch (-b <branch>). If you are just wanting to build the current checked-out tree, you could apply the v3 series which supports that. > >> The output is in ../<branch>/<commit>/<board> but if you want to keep >> the binaries, you need -k also. > > Ah, OK. > >> > 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. > > There should be something newer than > https://launchpad.net/linaro-toolchain-binaries but I'm failing to find > it quickly. OK I'll take a look. > >> > 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? > > Well, a --config-file= would be good enough so I could have > buildman-eldk54.cfg, buildman-eldk42.cfg, etc, etc. OK I'll add a new patch to a v4 series to implement that. It's pretty trivial so should get to it today. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot