Lines Matching +full:bm +full:- +full:work
3 # SPDX-License-Identifier: GPL-2.0+
8 Quick-start
14 cd /path/to/u-boot
16 buildman --fetch-arch arm
17 buildman -k rpi_2
19 # u-boot.bin is the output image
25 This tool handles building U-Boot to check that you have not broken it
28 to make full use of multi-processor machines.
40 where it left off. This should happen cleanly and without side-effects.
43 Buildman gets so tied up in its work that it can ignore the outside world.
44 You may need to press Ctrl-C several times to quit it. Also it will print
46 Ctrl-C handling is somewhat broken.
56 progress information (except with -v, see below). All the output (errors,
65 for another board. If you want buildman to re-build a commit it has already
66 built (e.g. because of a toolchain update), use the -f flag.
71 case it is de-duped and displayed against the commit that introduced the
86 Buildman works in an entirely separate place from your U-Boot repository.
89 name, in a two-level hierarchy.
91 Buildman is invoked in your U-Boot directory, the one with the .git
100 Buildman generally builds a branch (with the -b flag), and in this case
105 actions. Use -n to check what the random actions might be.
107 If you just want to build the current source tree, leave off the -b flag
108 and add -e. This will display results and errors as they happen. You can
109 still look at them later using -se. Note that buildman will assume that the
113 On multi-core machines, Buildman is fast because it uses most of the
116 plan to use your machine for anything else, you can use -T to increase the
120 command-line arguments that list the desired board name, architecture name,
136 You can also use -x to specifically exclude some boards. For example:
138 buildmand arm -x nvidia,freescale,.*ball$
143 It is convenient to use the -n option to see what will be built based on
144 the subset given. Use -v as well to get an actual list of boards.
148 information is always recorded. It needs a fair bit of disk space to work,
155 1. Get the U-Boot source. You probably already have it, but if not these
158 $ cd /path/to/u-boot
159 $ git clone git://git.denx.de/u-boot.git .
160 $ git checkout -b my-branch origin/master
171 eldk: /opt/eldk-4.2
172 arm: /opt/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux
173 aarch64: /opt/linaro/gcc-linaro-aarch64-none-elf-4.8-2013.10_linux
175 [toolchain-alias]
188 The toolchain-alias section indicates that the i386 toolchain should be used
193 [toolchain-prefix]
194 arm: /opt/arm-eabi-4.6/bin/arm-eabi-
198 [toolchain-prefix]
199 arm: /opt/arm-eabi-4.6/bin/arm-eabi-gcc
209 [toolchain-prefix]
210 arm: arm-none-eabi-
212 and buildman will find arm-none-eabi-gcc in /usr/bin if you have it installed.
214 [toolchain-wrapper]
223 3. Make sure you have the require Python pre-requisites
236 $ ./tools/buildman/buildman --list-tool-chains
238 - scanning prefix '/opt/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux-'
240 - scanning prefix '/opt/arm-eabi-4.6/bin/arm-eabi-'
242 - scanning path '/toolchains/gcc-4.9.0-nolibc/i386-linux'
243 - looking in '/toolchains/gcc-4.9.0-nolibc/i386-linux/.'
244 - looking in '/toolchains/gcc-4.9.0-nolibc/i386-linux/bin'
245 - found '/toolchains/gcc-4.9.0-nolibc/i386-linux/bin/i386-linux-gcc'
246 - looking in '/toolchains/gcc-4.9.0-nolibc/i386-linux/usr/bin'
248 - scanning path '/toolchains/gcc-4.9.0-nolibc/aarch64-linux'
249 - looking in '/toolchains/gcc-4.9.0-nolibc/aarch64-linux/.'
250 - looking in '/toolchains/gcc-4.9.0-nolibc/aarch64-linux/bin'
251 - found '/toolchains/gcc-4.9.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc'
252 - looking in '/toolchains/gcc-4.9.0-nolibc/aarch64-linux/usr/bin'
254 - scanning path '/toolchains/gcc-4.9.0-nolibc/microblaze-linux'
255 - looking in '/toolchains/gcc-4.9.0-nolibc/microblaze-linux/.'
256 - looking in '/toolchains/gcc-4.9.0-nolibc/microblaze-linux/bin'
257 - found '/toolchains/gcc-4.9.0-nolibc/microblaze-linux/bin/microblaze-linux-gcc'
258 - looking in '/toolchains/gcc-4.9.0-nolibc/microblaze-linux/usr/bin'
260 - scanning path '/toolchains/gcc-4.9.0-nolibc/mips64-linux'
261 - looking in '/toolchains/gcc-4.9.0-nolibc/mips64-linux/.'
262 - looking in '/toolchains/gcc-4.9.0-nolibc/mips64-linux/bin'
263 - found '/toolchains/gcc-4.9.0-nolibc/mips64-linux/bin/mips64-linux-gcc'
264 - looking in '/toolchains/gcc-4.9.0-nolibc/mips64-linux/usr/bin'
266 - scanning path '/toolchains/gcc-4.9.0-nolibc/sparc64-linux'
267 - looking in '/toolchains/gcc-4.9.0-nolibc/sparc64-linux/.'
268 - looking in '/toolchains/gcc-4.9.0-nolibc/sparc64-linux/bin'
269 - found '/toolchains/gcc-4.9.0-nolibc/sparc64-linux/bin/sparc64-linux-gcc'
270 - looking in '/toolchains/gcc-4.9.0-nolibc/sparc64-linux/usr/bin'
272 - scanning path '/toolchains/gcc-4.9.0-nolibc/arm-unknown-linux-gnueabi'
273 - looking in '/toolchains/gcc-4.9.0-nolibc/arm-unknown-linux-gnueabi/.'
274 - looking in '/toolchains/gcc-4.9.0-nolibc/arm-unknown-linux-gnueabi/bin'
275 … - found '/toolchains/gcc-4.9.0-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc'
276 - looking in '/toolchains/gcc-4.9.0-nolibc/arm-unknown-linux-gnueabi/usr/bin'
278 Toolchain '/toolchains/gcc-4.9.0-nolibc/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc…
279 - scanning path '/toolchains/gcc-4.9.0-nolibc/sparc-linux'
280 - looking in '/toolchains/gcc-4.9.0-nolibc/sparc-linux/.'
281 - looking in '/toolchains/gcc-4.9.0-nolibc/sparc-linux/bin'
282 - found '/toolchains/gcc-4.9.0-nolibc/sparc-linux/bin/sparc-linux-gcc'
283 - looking in '/toolchains/gcc-4.9.0-nolibc/sparc-linux/usr/bin'
285 - scanning path '/toolchains/gcc-4.9.0-nolibc/mips-linux'
286 - looking in '/toolchains/gcc-4.9.0-nolibc/mips-linux/.'
287 - looking in '/toolchains/gcc-4.9.0-nolibc/mips-linux/bin'
288 - found '/toolchains/gcc-4.9.0-nolibc/mips-linux/bin/mips-linux-gcc'
289 - looking in '/toolchains/gcc-4.9.0-nolibc/mips-linux/usr/bin'
291 - scanning path '/toolchains/gcc-4.9.0-nolibc/x86_64-linux'
292 - looking in '/toolchains/gcc-4.9.0-nolibc/x86_64-linux/.'
293 - looking in '/toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin'
294 - found '/toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc'
295 - found '/toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-x86_64-linux-gcc'
296 - looking in '/toolchains/gcc-4.9.0-nolibc/x86_64-linux/usr/bin'
299 Toolchain '/toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-x86_64-linux-gcc' at priority…
300 - scanning path '/toolchains/gcc-4.9.0-nolibc/m68k-linux'
301 - looking in '/toolchains/gcc-4.9.0-nolibc/m68k-linux/.'
302 - looking in '/toolchains/gcc-4.9.0-nolibc/m68k-linux/bin'
303 - found '/toolchains/gcc-4.9.0-nolibc/m68k-linux/bin/m68k-linux-gcc'
304 - looking in '/toolchains/gcc-4.9.0-nolibc/m68k-linux/usr/bin'
306 - scanning path '/toolchains/gcc-4.9.0-nolibc/powerpc-linux'
307 - looking in '/toolchains/gcc-4.9.0-nolibc/powerpc-linux/.'
308 - looking in '/toolchains/gcc-4.9.0-nolibc/powerpc-linux/bin'
309 - found '/toolchains/gcc-4.9.0-nolibc/powerpc-linux/bin/powerpc-linux-gcc'
310 - looking in '/toolchains/gcc-4.9.0-nolibc/powerpc-linux/usr/bin'
312 - scanning path '/toolchains/gcc-4.6.3-nolibc/bfin-uclinux'
313 - looking in '/toolchains/gcc-4.6.3-nolibc/bfin-uclinux/.'
314 - looking in '/toolchains/gcc-4.6.3-nolibc/bfin-uclinux/bin'
315 - found '/toolchains/gcc-4.6.3-nolibc/bfin-uclinux/bin/bfin-uclinux-gcc'
316 - looking in '/toolchains/gcc-4.6.3-nolibc/bfin-uclinux/usr/bin'
318 - scanning path '/toolchains/gcc-4.6.3-nolibc/sparc-linux'
319 - looking in '/toolchains/gcc-4.6.3-nolibc/sparc-linux/.'
320 - looking in '/toolchains/gcc-4.6.3-nolibc/sparc-linux/bin'
321 - found '/toolchains/gcc-4.6.3-nolibc/sparc-linux/bin/sparc-linux-gcc'
322 - looking in '/toolchains/gcc-4.6.3-nolibc/sparc-linux/usr/bin'
324 Toolchain '/toolchains/gcc-4.6.3-nolibc/sparc-linux/bin/sparc-linux-gcc' at priority 4 will be igno…
325 - scanning path '/toolchains/gcc-4.6.3-nolibc/mips-linux'
326 - looking in '/toolchains/gcc-4.6.3-nolibc/mips-linux/.'
327 - looking in '/toolchains/gcc-4.6.3-nolibc/mips-linux/bin'
328 - found '/toolchains/gcc-4.6.3-nolibc/mips-linux/bin/mips-linux-gcc'
329 - looking in '/toolchains/gcc-4.6.3-nolibc/mips-linux/usr/bin'
331 Toolchain '/toolchains/gcc-4.6.3-nolibc/mips-linux/bin/mips-linux-gcc' at priority 4 will be ignore…
332 - scanning path '/toolchains/gcc-4.6.3-nolibc/m68k-linux'
333 - looking in '/toolchains/gcc-4.6.3-nolibc/m68k-linux/.'
334 - looking in '/toolchains/gcc-4.6.3-nolibc/m68k-linux/bin'
335 - found '/toolchains/gcc-4.6.3-nolibc/m68k-linux/bin/m68k-linux-gcc'
336 - looking in '/toolchains/gcc-4.6.3-nolibc/m68k-linux/usr/bin'
338 Toolchain '/toolchains/gcc-4.6.3-nolibc/m68k-linux/bin/m68k-linux-gcc' at priority 4 will be ignore…
339 - scanning path '/toolchains/gcc-4.6.3-nolibc/powerpc-linux'
340 - looking in '/toolchains/gcc-4.6.3-nolibc/powerpc-linux/.'
341 - looking in '/toolchains/gcc-4.6.3-nolibc/powerpc-linux/bin'
342 - found '/toolchains/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc'
343 - looking in '/toolchains/gcc-4.6.3-nolibc/powerpc-linux/usr/bin'
346 - scanning path '/'
347 - looking in '/.'
348 - looking in '/bin'
349 - looking in '/usr/bin'
350 - found '/usr/bin/i586-mingw32msvc-gcc'
351 - found '/usr/bin/c89-gcc'
352 - found '/usr/bin/x86_64-linux-gnu-gcc'
353 - found '/usr/bin/gcc'
354 - found '/usr/bin/c99-gcc'
355 - found '/usr/bin/arm-linux-gnueabi-gcc'
356 - found '/usr/bin/aarch64-linux-gnu-gcc'
357 - found '/usr/bin/winegcc'
358 - found '/usr/bin/arm-linux-gnueabihf-gcc'
362 Toolchain '/usr/bin/x86_64-linux-gnu-gcc' at priority 4 will be ignored because another toolchain f…
366 Toolchain '/usr/bin/arm-linux-gnueabi-gcc' at priority 4 will be ignored because another toolchain …
368 Toolchain '/usr/bin/aarch64-linux-gnu-gcc' at priority 4 will be ignored because another toolchain …
372 Toolchain '/usr/bin/arm-linux-gnueabihf-gcc' at priority 4 will be ignored because another toolchai…
374 aarch64 : /toolchains/gcc-4.9.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc
375 alpha : /toolchains/gcc-4.9.0-nolibc/alpha-linux/bin/alpha-linux-gcc
376 am33_2.0 : /toolchains/gcc-4.9.0-nolibc/am33_2.0-linux/bin/am33_2.0-linux-gcc
377 arm : /opt/arm-eabi-4.6/bin/arm-eabi-gcc
378 bfin : /toolchains/gcc-4.6.3-nolibc/bfin-uclinux/bin/bfin-uclinux-gcc
379 c89 : /usr/bin/c89-gcc
380 c99 : /usr/bin/c99-gcc
381 frv : /toolchains/gcc-4.9.0-nolibc/frv-linux/bin/frv-linux-gcc
382 h8300 : /toolchains/gcc-4.9.0-nolibc/h8300-elf/bin/h8300-elf-gcc
383 hppa : /toolchains/gcc-4.9.0-nolibc/hppa-linux/bin/hppa-linux-gcc
384 hppa64 : /toolchains/gcc-4.9.0-nolibc/hppa64-linux/bin/hppa64-linux-gcc
385 i386 : /toolchains/gcc-4.9.0-nolibc/i386-linux/bin/i386-linux-gcc
386 i586 : /usr/bin/i586-mingw32msvc-gcc
387 ia64 : /toolchains/gcc-4.9.0-nolibc/ia64-linux/bin/ia64-linux-gcc
388 m32r : /toolchains/gcc-4.9.0-nolibc/m32r-linux/bin/m32r-linux-gcc
389 m68k : /toolchains/gcc-4.9.0-nolibc/m68k-linux/bin/m68k-linux-gcc
390 microblaze: /toolchains/gcc-4.9.0-nolibc/microblaze-linux/bin/microblaze-linux-gcc
391 mips : /toolchains/gcc-4.9.0-nolibc/mips-linux/bin/mips-linux-gcc
392 mips64 : /toolchains/gcc-4.9.0-nolibc/mips64-linux/bin/mips64-linux-gcc
393 or32 : /toolchains/gcc-4.5.1-nolibc/or32-linux/bin/or32-linux-gcc
394 powerpc : /toolchains/gcc-4.9.0-nolibc/powerpc-linux/bin/powerpc-linux-gcc
395 powerpc64 : /toolchains/gcc-4.9.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc
396 ppc64le : /toolchains/gcc-4.9.0-nolibc/ppc64le-linux/bin/ppc64le-linux-gcc
397 s390x : /toolchains/gcc-4.9.0-nolibc/s390x-linux/bin/s390x-linux-gcc
399 sh4 : /toolchains/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux-gcc
400 sparc : /toolchains/gcc-4.9.0-nolibc/sparc-linux/bin/sparc-linux-gcc
401 sparc64 : /toolchains/gcc-4.9.0-nolibc/sparc64-linux/bin/sparc64-linux-gcc
402 tilegx : /toolchains/gcc-4.6.2-nolibc/tilegx-linux/bin/tilegx-linux-gcc
403 x86 : /opt/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux-gcc
404 x86_64 : /toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc
419 $ ./tools/buildman/buildman --fetch-arch list
430 $ ./tools/buildman/buildman --fetch-arch or32
434 …www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.5.1//x86_64-gcc-4.5.1-nolibc_or32-linux.tar.…
435 Unpacking to: /home/sjg/.buildman-toolchains
437 - looking in '/home/sjg/.buildman-toolchains/gcc-4.5.1-nolibc/or32-linux/.'
438 - looking in '/home/sjg/.buildman-toolchains/gcc-4.5.1-nolibc/or32-linux/bin'
439 - found '/home/sjg/.buildman-toolchains/gcc-4.5.1-nolibc/or32-linux/bin/or32-linux-gcc'
444 $ ./tools/buildman/buildman --fetch-arch all
445 $ sudo mkdir -p /toolchains
446 $ sudo mv ~/.buildman-toolchains/*/* /toolchains/
450 arc: https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/
451 download/arc-2016.09-release/arc_gnu_2016.09_prebuilt_uclibc_le_archs_linux_install.tar.gz
452 blackfin: http://sourceforge.net/projects/adi-toolchain/files/
453 blackfin-toolchain-elf-gcc-4.5-2014R1_45-RC2.x86_64.tar.bz2
455 nds32le-linux-glibc-v1.tgz
456 nios2: http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu/
457 sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
458 sh: http://sourcery.mentor.com/public/gnu_toolchain/sh-linux-gnu/
459 renesas-4.4-200-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
462 http://opencores.org/or1k/OpenRISC_GNU_tool_chain#Prebuilt_versions - eg:
463 ftp://ocuser:ocuser@openrisc.opencores.org/toolchain/gcc-or1k-elf-4.8.1-x86.tar.bz2.
467 At the time of writing, U-Boot has these architectures:
478 First do a dry run using the -n flag: (replace <branch> with a real, local
481 $ ./tools/buildman/buildman -b <branch> -n
484 doing something like 'git branch --set-upstream-to upstream/master'
494 5bb3505 Merge branch 'master' of git://git.denx.de/u-boot-arm
516 we have a 4-core CPU). Each thread will run with -j1, meaning that each
529 To run the build for real, take off the -n:
531 $ ./tools/buildman/buildman -b <branch>
545 To find out how the build went, ask for a summary with -s. You can do this
547 afterwards. Let's work through an example of how this is used:
549 $ ./tools/buildman/buildman -b lcd9b -s
551 01: Merge branch 'master' of git://git.denx.de/u-boot-arm
573 the build is still in progress so many boards are not built yet (use -u to
586 $ ./tools/buildman/buildman -b <branch> -se lubbock
591 +/u-boot/lcd9b/.bm-work/00/common/lcd.c:120: undefined reference to `flush_dcache_range'
592 …-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2010q1-202) 2.19.51.20090709 assertion fail /scratc…
593 +make: *** [/u-boot/lcd9b/.bm-work/00/build/u-boot] Error 139
598 -/u-boot/lcd9b/.bm-work/00/common/lcd.c:120: undefined reference to `flush_dcache_range'
599 +/u-boot/lcd9b/.bm-work/00/common/lcd.c:125: undefined reference to `flush_dcache_range'
604 should be enough to work out what that commit is doing to break these
607 If you see error lines marked with '-', that means that the errors were fixed
617 If many boards have the same error, then -e will display the error only
619 each error, use -l. So it is safe to omit the board name - you will not get
627 ../lcd9b/12_of_18_gd92aff7_lcd--Add-support-for/lubbock/
635 in silent mode. Use -V to force a verbose build (this passes V=1
642 It is possible to get the build binary output there also. Use the -k option
645 System.map toolchain u-boot u-boot.bin u-boot.map autoconf.mk
646 (also SPL versions u-boot-spl and u-boot-spl.bin if available)
652 A key requirement for U-Boot is that you keep code/data size to a minimum.
657 To check the impact of your commits on image size, use -S. For example:
659 $ ./tools/buildman/buildman -b us-x86 -sS
663 x86: (for 1/3 boards) text -272.0 rodata +41.0
667 05: x86: Add an __end symbol to signal the end of the U-Boot binary
670 x86: (for 1/3 boards) bss -2140.0
671 07: x86: Support relocation of FDT on start-up
672 x86: + coreboot-x86
686 two together to get the total read-only size (reported as the first column
689 A useful option is --step which lets you skip some commits. For example
690 --step 2 will show the image sizes for only every 2nd commit (so it will
692 --step 0 which will compare only the first and last commits. This is useful
696 You can also use -d to see a detailed size breakdown for each board. This
699 It is even possible to go a little further with the -B option (--bloat). This
700 shows where U-Boot has bloated, breaking the size change down to the function
703 $ ./tools/buildman/buildman -b us-mem4 -sSdB
706 arm: (for 10/10 boards) all -143.4 bss +1.2 data -4.8 rodata -48.2 text -91.6
707 paz00 : all +23 bss -4 rodata -29 text +56
708 u-boot: add: 1/0, grow: 3/-2 bytes: 168/-104 (64)
711 crc32_wd_buf - 56 +56
714 run_list_real 1996 1992 -4
715 do_mem_crc 168 68 -100
716 trimslice : all -9 bss +16 rodata -29 text +4
717 u-boot: add: 1/0, grow: 1/-3 bytes: 136/-124 (12)
720 crc32_wd_buf - 56 +56
721 ext4fs_iterate_dir 672 668 -4
722 ext4fs_read_file 568 548 -20
723 do_mem_crc 168 68 -100
724 whistler : all -9 bss +16 rodata -29 text +4
725 u-boot: add: 1/0, grow: 1/-3 bytes: 136/-124 (12)
728 crc32_wd_buf - 56 +56
729 ext4fs_iterate_dir 672 668 -4
730 ext4fs_read_file 568 548 -20
731 do_mem_crc 168 68 -100
732 seaboard : all -9 bss -28 rodata -29 text +48
733 u-boot: add: 1/0, grow: 3/-2 bytes: 160/-104 (56)
736 crc32_wd_buf - 56 +56
739 do_nandboot 760 756 -4
740 do_mem_crc 168 68 -100
741 colibri_t20 : all -9 rodata -29 text +20
742 u-boot: add: 1/0, grow: 2/-3 bytes: 140/-112 (28)
745 crc32_wd_buf - 56 +56
747 do_nandboot 760 756 -4
748 ext4fs_read_file 576 568 -8
749 do_mem_crc 168 68 -100
750 ventana : all -37 bss -12 rodata -29 text +4
751 u-boot: add: 1/0, grow: 1/-3 bytes: 136/-124 (12)
754 crc32_wd_buf - 56 +56
755 ext4fs_iterate_dir 672 668 -4
756 ext4fs_read_file 568 548 -20
757 do_mem_crc 168 68 -100
758 harmony : all -37 bss -16 rodata -29 text +8
759 u-boot: add: 1/0, grow: 2/-3 bytes: 140/-124 (16)
762 crc32_wd_buf - 56 +56
764 ext4fs_iterate_dir 672 668 -4
765 ext4fs_read_file 568 548 -20
766 do_mem_crc 168 68 -100
767 medcom-wide : all -417 bss +28 data -16 rodata -93 text -336
768 u-boot: add: 1/-1, grow: 1/-2 bytes: 88/-376 (-288)
770 crc32_wd_buf - 56 +56
772 hash_algo 16 - -16
773 do_mem_crc 168 68 -100
774 hash_command 420 160 -260
775 tec : all -449 bss -4 data -16 rodata -93 text -336
776 u-boot: add: 1/-1, grow: 1/-2 bytes: 88/-376 (-288)
778 crc32_wd_buf - 56 +56
780 hash_algo 16 - -16
781 do_mem_crc 168 68 -100
782 hash_command 420 160 -260
783 plutux : all -481 bss +16 data -16 rodata -93 text -388
784 u-boot: add: 1/-1, grow: 1/-3 bytes: 68/-408 (-340)
786 crc32_wd_buf - 56 +56
788 hash_algo 16 - -16
789 do_fat_read_at 2904 2872 -32
790 do_mem_crc 168 68 -100
791 hash_command 420 160 -260
792 powerpc: (for 5/5 boards) all +37.4 data -3.2 rodata -41.8 text +82.4
793 MPC8610HPCD : all +55 rodata -29 text +84
794 u-boot: add: 1/0, grow: 0/-1 bytes: 176/-96 (80)
796 hash_command - 176 +176
797 do_mem_crc 184 88 -96
798 MPC8641HPCN : all +55 rodata -29 text +84
799 u-boot: add: 1/0, grow: 0/-1 bytes: 176/-96 (80)
801 hash_command - 176 +176
802 do_mem_crc 184 88 -96
803 MPC8641HPCN_36BIT: all +55 rodata -29 text +84
804 u-boot: add: 1/0, grow: 0/-1 bytes: 176/-96 (80)
806 hash_command - 176 +176
807 do_mem_crc 184 88 -96
808 sbc8641d : all +55 rodata -29 text +84
809 u-boot: add: 1/0, grow: 0/-1 bytes: 176/-96 (80)
811 hash_command - 176 +176
812 do_mem_crc 184 88 -96
813 xpedite517x : all -33 data -16 rodata -93 text +76
814 u-boot: add: 1/-1, grow: 0/-1 bytes: 176/-112 (64)
816 hash_command - 176 +176
817 hash_algo 16 - -16
818 do_mem_crc 184 88 -96
829 add - number of functions added / removed
830 grow - number of functions which grew / shrunk
831 bytes - number of bytes of code added to / removed from all functions,
836 roughly the text area size, but note that every read-only section except
857 it to check that it is a C compiler, passing only the --version flag to
863 For example powerpc-linux-gcc will be noted as a toolchain for 'powerpc'
864 and CROSS_COMPILE will be set to powerpc-linux- when using it.
866 '[toolchain-alias]' section
868 This converts toolchain architecture names to U-Boot names. For example,
869 if an x86 toolchains is called i386-linux-gcc it will not normally be
874 '[make-flags]' section
876 U-Boot's build system supports a few flags (such as BUILD_TAG) which
878 settings file. They can also be useful when building U-Boot against other
881 [make-flags]
882 at91-boards=ENABLE_AT91_TEST=1
883 snapper9260=${at91-boards} BUILD_TAG=442
884 snapper9g45=${at91-boards} BUILD_TAG=443
890 that variables can only contain the characters A-Z, a-z, 0-9, hyphen (-)
893 It is expected that any variables added are dealt with in U-Boot's
896 Note that you can pass ad-hoc options to the build using environment
906 currently checked-out source, run buildman without the -b flag. This will
907 build the selected boards and display build status as it runs (i.e. -v is
908 enabled automatically). Use -e to see errors/warnings as well.
915 when using the -b flag. For example:
917 upstream/master..us-buildman
919 will build commits in us-buildman that are not in upstream/master.
927 trust the build system's incremental build capabilities, you can pass the -I
929 work 'make' does, and hence speed up the build. This flag will speed up any
930 buildman invocation, since it reduces the amount of work done on any build.
937 causes more build work to be performed than strictly necessary.
943 files when a thread switches between boards. Ideally, such buildman-induced
945 the build system and source changes allow. buildman's -P flag may be used to
946 enable this; -P causes each board to be built in a separate (board-specific)
947 directory, thus avoiding any buildman-induced configuration changes in any
950 U-Boot's build system embeds information such as a build timestamp into the
951 final binary. This information varies each time U-Boot is built. This causes
953 requires that the final U-Boot binary be re-linked. This unnecessary work can
957 Combining all of these options together yields the command-line shown below.
961 SOURCE_DATE_EPOCH=0 ./tools/buildman/buildman -I -P tegra
969 Buildman supports this with the -K option, used after a build. This shows
974 $ buildman -b kc4 -sK
978 + u-boot.cfg: CONFIG_SPL_ENV_SUPPORT=1 CONFIG_SPL_NET_SUPPORT=1
979 + u-boot-spl.cfg: CONFIG_SPL_MMC_SUPPORT=1 CONFIG_SPL_NAND_SUPPORT=1
982 + u-boot.cfg: CONFIG_SPL_ENV_SUPPORT=1 CONFIG_SPL_NET_SUPPORT=1
983 + u-boot-spl.cfg: CONFIG_SPL_MMC_SUPPORT=1 CONFIG_SPL_NAND_SUPPORT=1
994 The -K option uses the u-boot.cfg, spl/u-boot-spl.cfg and tpl/u-boot-tpl.cfg
996 configuration you can in fact avoid doing a full build, using -D. This tells
997 buildman to configuration U-Boot and create the .cfg files, but not actually
998 build the source. This is 5-10 times faster than doing a full build.
1010 option to Kconfig. To disable this behaviour, use --squash-config-y.
1016 Buildman has various other command line options. Try --help to see them.
1034 - We don't want to maintain two build systems
1035 - Buildman is typically faster
1036 - Buildman has a lot more features
1041 First you need to set up your tool chains - see the 'Setting up' section
1045 To build the current source tree, run buildman without a -b flag:
1055 ./tools/buildman/buildman -b <branch_name> <list of things to build>
1059 ./tools/buildman/buildman -b <branch_name> -s <list of things to build>
1063 an error and green indicating that a commit fixed an error. Use the -e
1064 flag to see the full errors and -l to see which boards caused which errors.
1066 If you really want to see build results as they happen, use -v when doing a
1067 build (and -e to see the errors/warnings too).
1078 - build all Power Architecture boards:
1079 MAKEALL -a powerpc
1080 MAKEALL --arch powerpc
1082 ** buildman -b <branch> powerpc
1083 - build all PowerPC boards manufactured by vendor "esd":
1084 MAKEALL -a powerpc -v esd
1085 ** buildman -b <branch> esd
1086 - build all PowerPC boards manufactured either by "keymile" or "siemens":
1087 MAKEALL -a powerpc -v keymile -v siemens
1088 ** buildman -b <branch> keymile siemens
1089 - build all Freescale boards with MPC83xx CPUs, plus all 4xx boards:
1090 MAKEALL -c mpc83xx -v freescale 4xx
1091 ** buildman -b <branch> mpc83xx freescale 4xx
1096 You can use the -T flag to change the number of threads. If you are only
1097 building a few boards, buildman will automatically run make with the -j
1100 option in MAKEALL then -j is the equivalent in buildman.
1103 this with the -o option. Buildman normally does out-of-tree builds: use -i
1105 used -i you pollute buildman's copies of the source tree, and you will need
1107 in normal mode (without -i).
1109 Buildman doesn't keep the output result normally, but use the -k option to
1117 -B shows which functions are growing/shrinking in which commit - great
1119 -S shows image sizes for each commit (just an overall summary)
1120 -u shows boards that you haven't built yet
1121 --step 0 will build just the upstream commit and the last commit of your
1136 A specific problem to fix is that Ctrl-C does not exit buildman cleanly when
1150 Updated 12-12-12
1151 Updated 23-02-13