Skip to contentSkip to conversation

Treat warnings different from errors in buildman?

U-Boot Tom Rini 3 participants 7 messages Aug 21, 2014 – Aug 23, 2014

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

Hey,

So as I migrate scripts over to buildman, one issue I have is that
today warning and errors are treated the same:
u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

mips is the mipsel libgcc thing, I need to see if eldk5.5 behaves better than 5.2.1 in that regard and passing or setting CONFIG_USE_PRIVATE_LIBGCC=yes. sparc is however all warnings (old gcc warning when it should not).

Also, is there any way to note which boards/arches an error comes from? +/home/trini/work/u-boot/master/.bm-work/00/disk/part.c: In function `get_device':
+/home/trini/work/u-boot/master/.bm-work/00/disk/part.c:453: warning:
'hwpart' might be used uninitialized in this function

Is confusing if you hadn't done a sparc solo build before and seen that.

Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140821/b6c49953/attachment.pgp>
author
#1 lore raw
Quoted 11 lines · Tom Rini

Hey,

So as I migrate scripts over to buildman, one issue I have is that
today warning and errors are treated the same:
u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

Oh, and the sandbox error is because with sparse installed, it picks 'cgcc' as the toolchain to use rather than 'gcc' and then fails to link as there's no 'cld'.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140821/c43592ba/attachment.pgp>
#2 lore raw
In reply to Tom Rini

Hi Tom,

Quoted 7 lines · Tom Rini

Hey,

So as I migrate scripts over to buildman, one issue I have is that
today warning and errors are treated the same:
u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

Quoted 8 lines
      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

mips is the mipsel libgcc thing, I need to see if eldk5.5 behaves better than 5.2.1 in that regard and passing or setting CONFIG_USE_PRIVATE_LIBGCC=yes.

ELDK-5.5 doesn't behave better. You will always need CONFIG_USE_PRIVATE_LIBGCC=yes to build all MIPS boards at once and if you don't have a full multilib toolchain. I'm still wondering why Wolfgang decided long time ago, that U-Boot should rely on the toolchain's libgcc and not use its own variant like the kernel does.

Signature · 1 line
- Daniel
author
#3 lore raw
Quoted 19 lines · Daniel Schwierzeck

Hi Tom,

Quoted 7 lines · Tom Rini

Hey,

So as I migrate scripts over to buildman, one issue I have is that
today warning and errors are treated the same:
u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

Quoted 8 lines
      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

mips is the mipsel libgcc thing, I need to see if eldk5.5 behaves better than 5.2.1 in that regard and passing or setting CONFIG_USE_PRIVATE_LIBGCC=yes.

Quoted 5 lines

ELDK-5.5 doesn't behave better. You will always need CONFIG_USE_PRIVATE_LIBGCC=yes to build all MIPS boards at once and if you don't have a full multilib toolchain. I'm still wondering why Wolfgang decided long time ago, that U-Boot should rely on the toolchain's libgcc and not use its own variant like the kernel does.

Ah, what I mean was that I can't seem to find the right 'trick' to have CONFIG_USE_PRIVATE_LIBGCC work today. I tried make-flags for buildman and export CONFIG_USE_PRIVATE_LIBGCC=yes in my wrapper around MAKEALL.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140822/7a0b639d/attachment.pgp>
#4 lore raw
Quoted 26 lines · Tom Rini
Quoted 19 lines · Daniel Schwierzeck

Hi Tom,

Quoted 7 lines · Tom Rini

Hey,

So as I migrate scripts over to buildman, one issue I have is that
today warning and errors are treated the same:
u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

Quoted 8 lines
      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

mips is the mipsel libgcc thing, I need to see if eldk5.5 behaves better than 5.2.1 in that regard and passing or setting CONFIG_USE_PRIVATE_LIBGCC=yes.

Quoted 5 lines

ELDK-5.5 doesn't behave better. You will always need CONFIG_USE_PRIVATE_LIBGCC=yes to build all MIPS boards at once and if you don't have a full multilib toolchain. I'm still wondering why Wolfgang decided long time ago, that U-Boot should rely on the toolchain's libgcc and not use its own variant like the kernel does.

Quoted 4 lines

Ah, what I mean was that I can't seem to find the right 'trick' to have CONFIG_USE_PRIVATE_LIBGCC work today. I tried make-flags for buildman and export CONFIG_USE_PRIVATE_LIBGCC=yes in my wrapper around MAKEALL.

The trick is to use "CONFIG_USE_PRIVATE_LIBGCC=y" instead of "CONFIG_USE_PRIVATE_LIBGCC=yes" because it is handled like a boolean Kconfig symbol.

BTW: I'm using env scripts for different toolchains which could be sourced. For ELDK-5.5 I have:

$ cat env-eldk5.5-mips
export CONFIG_USE_PRIVATE_LIBGCC=y
export USE_PRIVATE_LIBGCC=yes
export
CROSS_COMPILE=/opt/eldk-5.5/mips/sysroots/i686-eldk-linux/usr/bin/mips-linux/mips-linux-
Signature · 1 line
- Daniel
author
#5 lore raw
Quoted 36 lines · Daniel Schwierzeck
Quoted 26 lines · Tom Rini
Quoted 19 lines · Daniel Schwierzeck

Hi Tom,

Quoted 7 lines · Tom Rini

Hey,

So as I migrate scripts over to buildman, one issue I have is that
today warning and errors are treated the same:
u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

Quoted 8 lines
      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

mips is the mipsel libgcc thing, I need to see if eldk5.5 behaves better than 5.2.1 in that regard and passing or setting CONFIG_USE_PRIVATE_LIBGCC=yes.

Quoted 5 lines

ELDK-5.5 doesn't behave better. You will always need CONFIG_USE_PRIVATE_LIBGCC=yes to build all MIPS boards at once and if you don't have a full multilib toolchain. I'm still wondering why Wolfgang decided long time ago, that U-Boot should rely on the toolchain's libgcc and not use its own variant like the kernel does.

Quoted 4 lines

Ah, what I mean was that I can't seem to find the right 'trick' to have CONFIG_USE_PRIVATE_LIBGCC work today. I tried make-flags for buildman and export CONFIG_USE_PRIVATE_LIBGCC=yes in my wrapper around MAKEALL.

The trick is to use "CONFIG_USE_PRIVATE_LIBGCC=y" instead of "CONFIG_USE_PRIVATE_LIBGCC=yes" because it is handled like a boolean Kconfig symbol.

Quoted 8 lines

BTW: I'm using env scripts for different toolchains which could be sourced. For ELDK-5.5 I have:

$ cat env-eldk5.5-mips
export CONFIG_USE_PRIVATE_LIBGCC=y
export USE_PRIVATE_LIBGCC=yes
export
CROSS_COMPILE=/opt/eldk-5.5/mips/sysroots/i686-eldk-linux/usr/bin/mips-linux/mips-linux-

Ah, OK. I've got something started on buildman now for an env-flags section and it's building mips/mipsel. I'll post a patch once it's less embarassing looking.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140822/87042d29/attachment.pgp>
#6 lore raw
In reply to Tom Rini

Hi Tom,

Quoted 4 lines · Tom Rini

Hey,

So as I migrate scripts over to buildman, one issue I have is that today warning and errors are treated the same:

Actually buildman can't tell the difference at present. Both errors and warnings end up in stderr. Buildman assumes that if make returns an exit code of 0 then there were no errors (since they would have terminated the build). So we have three categories:

- board with no errors/warnings
- board which builds but has output in stderr, assumed to be warnings
- board with errors, but may also contain warnings

I will take a look at trying to distinguish between warnings and errors by looking at the stderr output. My philosophy with buildman has been to go to quite extreme measured to help summarise and categorise the problems, so I suppose this would be just another step.

Quoted 13 lines

u-boot (master)$ ./tools/buildman/buildman -b master -c 1 -ve -T 1 -j 9 'arc|blackfin|microblaze|m68k|nds32|sparc|x86|aarch64|sandbox|mips' -s Summary of 1 commit for 128 boards (1 thread, 9 jobs per thread)
01: git-mailrc: add patman and buildman alias

      mips: +   pb1000 dbau1550_el qemu_mipsel maltael
     sparc: +   grsim_leon2 gr_cpci_ax2000 gr_ep2s60 grsim gr_xc3s_1500
       arc: +   tb100 arcangel4-be axs101 arcangel4
   sandbox: +   sandbox

mips is the mipsel libgcc thing, I need to see if eldk5.5 behaves better than 5.2.1 in that regard and passing or setting CONFIG_USE_PRIVATE_LIBGCC=yes. sparc is however all warnings (old gcc warning when it should not).

Quoted 7 lines

Also, is there any way to note which boards/arches an error comes from? +/home/trini/work/u-boot/master/.bm-work/00/disk/part.c: In function `get_device':
+/home/trini/work/u-boot/master/.bm-work/00/disk/part.c:453: warning:
'hwpart' might be used uninitialized in this function

Is confusing if you hadn't done a sparc solo build before and seen that.

I'll add an option for that.

Regards,
Simon