[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

Chen, Rong A rong.a.chen at intel.com
Thu Aug 19 06:22:13 UTC 2021



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.

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