On Mon, May 20, 2019 at 4:57 AM Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > > I just thought it was a good idea to scan builtin.modules in the name > uniqueness checking, but Stephen reported a false positive. > > ppc64_defconfig produces: > > warning: same basename if the following are built as modules: > arch/powerpc/platforms/powermac/nvram.ko > drivers/char/nvram.ko > > ..., which is a false positive because the former is never built as > a module as you see in arch/powerpc/platforms/powermac/Makefile: > > # CONFIG_NVRAM is an arch. independent tristate symbol, for pmac32 we really > # need this to be a bool. Cheat here and pretend CONFIG_NVRAM=m is really > # CONFIG_NVRAM=y > obj-$(CONFIG_NVRAM:m=y) += nvram.o > > Since we cannot predict how tricky Makefiles are written in wild, > builtin.modules may potentially contain false positives. I do not > think it is a big deal as far as kmod is concerned, but false positive > warnings in the kernel build makes people upset. It is better to not > do it. > > Even without checking builtin.modules, we have enough (and more solid) > test coverage with allmodconfig. > > While I touched this part, I replaced the sed code with neater one > provided by Stephen. > > Link: https://lkml.org/lkml/2019/5/19/120 > Link: https://lkml.org/lkml/2019/5/19/123 > Fixes: 3a48a91901c5 ("kbuild: check uniqueness of module names") > Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> Looks good to me Acked-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > > scripts/modules-check.sh | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/scripts/modules-check.sh b/scripts/modules-check.sh > index 2f659530e1ec..39e8cb36ba19 100755 > --- a/scripts/modules-check.sh > +++ b/scripts/modules-check.sh > @@ -6,10 +6,10 @@ set -e > # Check uniqueness of module names > check_same_name_modules() > { > - for m in $(sed 's:.*/::' modules.order modules.builtin | sort | uniq -d) > + for m in $(sed 's:.*/::' modules.order | sort | uniq -d) > do > - echo "warning: same basename if the following are built as modules:" >&2 > - sed "/\/$m/!d;s:^kernel/: :" modules.order modules.builtin >&2 > + echo "warning: same module names found:" >&2 > + sed -n "/\/$m/s:^kernel/: :p" modules.order >&2 > done > } > > -- > 2.17.1 >