[kbuild-all] Re: [driver-core:driver-core-testing 28/31] WARNING: modpost: vmlinux.o(.text.unlikely+0x156c): Section mismatch in reference from the function bitmap_equal() to the variable .init.data:initcall_level_names

Barry Song 21cnbao at gmail.com
Thu Aug 19 08:07:10 UTC 2021


On Thu, Aug 19, 2021 at 6:22 PM Chen, Rong A <rong.a.chen at intel.com> wrote:
>
>
>
> On 8/15/2021 8:04 AM, Barry Song wrote:
> > On Sun, Aug 15, 2021 at 5:18 AM Andy Shevchenko
> > <andy.shevchenko at gmail.com> wrote:
> >>
> >> On Sat, Aug 14, 2021 at 4:36 PM Greg Kroah-Hartman
> >> <gregkh at linuxfoundation.org> wrote:
> >>> On Sat, Aug 14, 2021 at 07:03:00PM +0800, kernel test robot wrote:
> >>>> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-testing
> >>>> head:   3b35f2a6a625126c57475aa56b5357d8e80b404c
> >>>> commit: 291f93ca339f5b5e6e90ad037bb8271f0f618165 [28/31] lib: test_bitmap: add bitmap_print_bitmask/list_to_buf test cases
> >>>> config: xtensa-randconfig-r004-20210814 (attached as .config)
> >>>> compiler: xtensa-linux-gcc (GCC) 11.2.0
> >>>> reproduce (this is a W=1 build):
> >>>>          wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >>>>          chmod +x ~/bin/make.cross
> >>>>          # https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/commit/?id=291f93ca339f5b5e6e90ad037bb8271f0f618165
> >>>>          git remote add driver-core https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
> >>>>          git fetch --no-tags driver-core driver-core-testing
> >>>>          git checkout 291f93ca339f5b5e6e90ad037bb8271f0f618165
> >>>>          # save the attached .config to linux build tree
> >>>>          mkdir build_dir
> >>>>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=xtensa SHELL=/bin/bash
> >>>>
> >>>> If you fix the issue, kindly add following tag as appropriate
> >>>> Reported-by: kernel test robot <lkp at intel.com>
> >>>>
> >>>> All warnings (new ones prefixed by >>, old ones prefixed by <<):
> >>>>
> >>>>>> WARNING: modpost: vmlinux.o(.text.unlikely+0x156c): Section mismatch in reference from the function bitmap_equal() to the variable .init.data:initcall_level_names
> >>>> The function bitmap_equal() references
> >>>> the variable __initdata initcall_level_names.
> >>>> This is often because bitmap_equal lacks a __initdata
> >>>> annotation or the annotation of initcall_level_names is wrong.
> >>>>
> >>>> The below error/warnings are from parent commit:
> >>>> << WARNING: modpost: vmlinux.o(.data+0x1a86d8): Section mismatch in reference from the variable qed_mfw_legacy_maps to the variable .init.rodata:__setup_str_initcall_blacklist
> >>>> << WARNING: modpost: vmlinux.o(.data+0x1a87c8): Section mismatch in reference from the variable qed_mfw_ext_maps to the variable .init.rodata:__setup_str_initcall_blacklist
> >>>> << WARNING: modpost: vmlinux.o(.data+0x1a8948): Section mismatch in reference from the variable qede_forced_speed_maps to the variable .init.rodata:__setup_str_initcall_blacklist
> >>
> >>> Barry, can I get a fix for this?
> >>
> >> Max already pointed out, but I guess you were not in Cc list, that
> >> it's a GCC bug in his opinion, but GCC people don't ack it.
> >> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92938
> >
> > I really don't understand what is going on here. My understanding is
> > this report has nothing to do with the
> > new commit and it doesn't report any valid place where kernel code is wrong.
>
> Hi Barry,
>
> Sorry for the misunderstanding, the warning only changed a little by
> this commit, see:
>
>  >>>> The below error/warnings are from parent commit:
>  >>>> << WARNING: modpost: vmlinux.o(.data+0x1a86d8): Section mismatch
> in reference from the variable qed_mfw_legacy_maps to the variable
> .init.rodata:__setup_str_initcall_blacklist
>  >>>> << WARNING: modpost: vmlinux.o(.data+0x1a87c8): Section mismatch
> in reference from the variable qed_mfw_ext_maps to the variable
> .init.rodata:__setup_str_initcall_blacklist
>  >>>> << WARNING: modpost: vmlinux.o(.data+0x1a8948): Section mismatch
> in reference from the variable qede_forced_speed_maps to the variable
> .init.rodata:__setup_str_initcall_blacklist
>
> we'll update the message to give a heavy hint.

Rong, note we have another discussion over here:
https://lore.kernel.org/lkml/20210815032132.14530-1-21cnbao@gmail.com/

and a gcc bug was reported one year ago:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92938


>
> Best Regards,
> Rong Chen
>
> >
> > with xtensa gcc 11.1 which is the one i can easily download from here
> > after google:
> > http://kernel.c3sl.ufpr.br/pub/tools/crosstool/
> >
> > i could somehow reproduce this kind of very odd section mismatch
> > report from bitmap:
> > $ ./build-xenta.sh
> >    ...
> >    MODPOST vmlinux.symvers
> > WARNING: modpost: vmlinux.o(.text.unlikely+0x4d64): Section mismatch
> > in reference from the function bitmap_equal() to the variable
> > .init.rodata:__setup_str_initcall_blacklist
> > The function bitmap_equal() references
> > the variable __initconst __setup_str_initcall_blacklist.
> > This is often because bitmap_equal lacks a __initconst
> > annotation or the annotation of __setup_str_initcall_blacklist is wrong.
> >
> > ...
> > WARNING: modpost: lib/find_bit_benchmark.o(.text.unlikely+0x0):
> > Section mismatch in reference from the (unknown reference) (unknown)
> > to the variable .init.data:bitmap2
> > The function (unknown)() references
> > the variable __initdata bitmap2.
> > This is often because (unknown) lacks a __initdata
> > annotation or the annotation of bitmap2 is wrong.
> > ...
> >
> > But after reverting my commit, it is *still* there:
> >
> > $ git revert 2069b8b9ce8b758e015ce49225b1fedac4accd9c
> > [scheduler e158c85c6ccc] Revert "lib: test_bitmap: add
> > bitmap_print_bitmask/list_to_buf test cases"
> >   1 file changed, 150 deletions(-)
> >
> > $ ./build-xenta.sh
> > ...
> >    MODPOST vmlinux.symvers
> > WARNING: modpost: vmlinux.o(.text.unlikely+0x4d64): Section mismatch
> > in reference from the function bitmap_equal() to the variable
> > .init.rodata:__setup_str_initcall_blacklist
> > The function bitmap_equal() references
> > the variable __initconst __setup_str_initcall_blacklist.
> > This is often because bitmap_equal lacks a __initconst
> > annotation or the annotation of __setup_str_initcall_blacklist is wrong.
> > ...
> > WARNING: modpost: lib/find_bit_benchmark.o(.text.unlikely+0x0):
> > Section mismatch in reference from the (unknown reference) (unknown)
> > to the variable .init.data:bitmap2
> > The function (unknown)() references
> > the variable __initdata bitmap2.
> > This is often because (unknown) lacks a __initdata
> > annotation or the annotation of bitmap2 is wrong.
> >
> >    Kernel: arch/xtensa/boot/boot-elf/../Image.elf is ready
> >    GEN     Module.symvers
> >
> >>
> >> --
> >> With Best Regards,
> >> Andy Shevchenko
> >
> > Thanks
> > Barry
> > _______________________________________________
> > kbuild-all mailing list -- kbuild-all at lists.01.org
> > To unsubscribe send an email to kbuild-all-leave at lists.01.org
> >


More information about the devel mailing list