Re: [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

From: Chen, Rong A
Date: Thu Aug 19 2021 - 02:22:26 EST




On 8/15/2021 8:04 AM, Barry Song wrote:
On Sun, Aug 15, 2021 at 5:18 AM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:

On Sat, Aug 14, 2021 at 4:36 PM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxx>

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@xxxxxxxxxxxx
To unsubscribe send an email to kbuild-all-leave@xxxxxxxxxxxx