Re: [GIT PULL for v4.15-rc3] media fixes
From: Mauro Carvalho Chehab
Date: Wed Dec 13 2017 - 07:36:42 EST
Em Wed, 13 Dec 2017 13:27:47 +0100
Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> escreveu:
> Hi Mauro,
>
> On Wed, Dec 13, 2017 at 12:53 PM, Mauro Carvalho Chehab
> <mchehab@xxxxxxxxxxxxxxx> wrote:
> > Em Wed, 13 Dec 2017 10:03:56 +0100
> > Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> escreveu:
> >> On Mon, Dec 11, 2017 at 12:12 PM, Mauro Carvalho Chehab
> >> <mchehab@xxxxxxxxxxxxxxx> wrote:
> >> > Without this series, I was getting 809 lines of bogus warnings (see below),
> >> > with was preventing me to see new warnings on my incremental builds
> >> > while applying new patches at the media tree.
> >>
> >> $ linux-log-diff build.log{.old,}
> >>
> >> (from https://github.com/geertu/linux-scripts)
> >
> > That's nice!
> >
> > Yet, it is producing some noise. I did a clean build with:
> >
> > $ make ARCH=i386 CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y W=1 CHECK='' M=drivers/staging/media | grep -v -e " CC " -e " LD " -e " AR " -e " CHK " -e " CALL " -e " UPD " -e "scripts/kconfig/conf " -e " CHECK " >old.log
> > $ make ARCH=i386 CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y W=1 CHECK='' M=drivers/media| grep -v -e " CC " -e " LD " -e " AR " -e " CHK " -e " CALL " -e " UPD " -e "scripts/kconfig/conf " -e " CHECK " >>old.log
> >
> > and added a new uninitialized "foo" var to a random driver, doing an
> > incremental build with:
> >
> > $ make ARCH=i386 CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y W=1 CHECK='' | grep -v -e " CC " -e " LD " -e " AR " -e " CHK " -e " CALL " -e " UPD " -e "scripts/kconfig/conf " -e " CHECK " M=drivers/staging/media >new.log
> > $ make ARCH=i386 CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y W=1 CHECK='' | grep -v -e " CC " -e " LD " -e " AR " -e " CHK " -e " CALL " -e " UPD " -e "scripts/kconfig/conf " -e " CHECK " M=drivers/media >new.log
> >
> > Then, I ran the script:
> >
> > $ linux-log-diff old.log new.log
> >
> > *** ERRORS ***
> >
> >
> > *** WARNINGS ***
> >
> > 1 warning regressions:
> > + drivers/media/dvb-frontends/dibx000_common.c: warning: unused variable 'foo' [-Wunused-variable]: => 22:5
> >
> > 3 warning improvements:
> > - ./arch/x86/include/asm/bitops.h: warning: asm output is not an lvalue: 430:22 =>
> > - drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/mmu_private.h: warning: function 'mmu_reg_load' with external linkage has definition: 35:30 =>
> > - drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_common/host/mmu_private.h: warning: function 'mmu_reg_store' with external linkage has definition: 24:26 =>
> >
> > It detected the "foo" var warning, but it outputs 3 warning improvements
> > on files that were not even built the second time.
>
> If the file wasn't built, the warning cannot be in the log ;-)
> So yes, it works best for full builds, only flagging warnings that
> (dis)appeared (and ignoring changes due to changed line numbers!).
>
> If you do lots of incremental builds, you want to append the last incremental
> log to the existing full log before doing a new build, to avoid false positives
> from files that weren't built in the previous run:
>
> $ cat new.log >> old.log
> $ make ... > new.log
> $ linux-log-diff old.log new.log
>
> And only new warnings should be reported.
Ok. I'll do some trials with this script, as it sounds promising!
Regards,
Mauro
--
Thanks,
Mauro