On Thu, May 07, 2020 at 09:16:40PM -0600, Simon Glass wrote: > Hi Masahiro, > > On Thu, 7 May 2020 at 19:54, Masahiro Yamada <masahi...@kernel.org> wrote: > > > > On Fri, May 8, 2020 at 10:39 AM Simon Glass <s...@chromium.org> wrote: > > > > > > Hi Masahiro, > > > > > > On Thu, 7 May 2020 at 06:21, Masahiro Yamada > > > <yamada.masah...@socionext.com> wrote: > > > > > > > > Add -Werror=implicit-function-declaration as Linux does. > > > > > > > > If you do not check the prototype, it may go wrong run-time. > > > > It is better to break the build, and require to include correct > > > > headers. > > > > > > > > Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> > > > > --- > > > > > > > > Makefile | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > NAK > > > > > > We already get a warning in this situation. This makes it painful for > > > development since things that should be warnings end up being errors. > > > So your build fails when really it should work well enough to do a > > > test run with your new code. I don't think it has any benefit on code > > > quality since we already detect warnings in gitlab, etc. > > > > > > U-Boot is set up so that warnings are reported and are easy to spot if > > > you use 'make -s' (i.e. not buried in the output). > > > > > > Regards, > > > Simon > > > > > > > > Linux added this flag in 2007. > > > > The intention seems to break the build earlier > > when a non-existing function is used. > > > > I have not seen compliant about this flag in Linux. > > What does it make different for U-Boot ? > > Well that commit message is quite misleading. The author is presumably > ignoring the warnings that come out in the compile phase. For me they > come up loud and clear. I don't know why it takes half an hour to get > to the link stage. My average incremental build time is under 4 > seconds including the link. > > Finally, the warning does not tell you anything about whether the > function doesn't exist. It just tells you you have left out a header > file. > > I know how much of a pain this is, because coreboot does this. It does > it partly because there is so much build output that the warnings are > invisible unless they actually halt the build. Even then you have to > search for what went wrong.
I'm not immediately sure of the right answer here. Part of the problem is that even with 'make -s' U-Boot can be horribly noisy due to device tree warnings. I assume Yamada-san ran in to a problem and was expecting the build to have failed but instead was chasing down a run-time debug until finding this. It's really easy to build with -Werror set via buildman, but a lot of people don't expect to have to use buildman (as it's not required, just a good idea), see for example the thread about building non-functional sunxi binaries. If they used buildman the non-zero exit code would have saved them the debug time. All that said, I can imagine that doing something like the include cleanup series that you do would be even harder with this on. But on the 3rd or 4th hand, adding -k to make gets those builds going along anyhow. Personally, when I see those warnings I fix them up before tossing at the hardware, but I know that's not everyones workflow. -- Tom
signature.asc
Description: PGP signature