Re: WARNING: modpost: vmlinux: section mismatch in reference: bitmap_gather+0x68 (section: .text) -> sg_mask (section: .init.rodata)
From: Yury Norov
Date: Wed Aug 14 2024 - 12:53:18 EST
On Wed, Aug 14, 2024 at 07:32:02PM +0300, Andy Shevchenko wrote:
> +Cc: Clang and bitmap people.
>
> On Thu, Jun 20, 2024 at 08:54:29AM +0800, kernel test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: e5b3efbe1ab1793bb49ae07d56d0973267e65112
> > commit: de5f84338970815b9fdd3497a975fb572d11e0b5 lib/bitmap: Introduce bitmap_scatter() and bitmap_gather() helpers
> > date: 3 months ago
> > config: um-randconfig-r123-20240620 (https://download.01.org/0day-ci/archive/20240620/202406200829.IytwLyQJ-lkp@xxxxxxxxx/config)
> > compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 78ee473784e5ef6f0b19ce4cb111fb6e4d23c6b2)
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240620/202406200829.IytwLyQJ-lkp@xxxxxxxxx/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202406200829.IytwLyQJ-lkp@xxxxxxxxx/
> >
> > All warnings (new ones prefixed by >>, old ones prefixed by <<):
> >
> > WARNING: modpost: missing MODULE_DESCRIPTION() in vmlinux.o
> > >> WARNING: modpost: vmlinux: section mismatch in reference: bitmap_gather+0x68 (section: .text) -> sg_mask (section: .init.rodata)
> > WARNING: modpost: vmlinux: section mismatch in reference: bitmap_gather+0x10b (section: .text) -> sg_mask (section: .init.rodata)
> > >> WARNING: modpost: vmlinux: section mismatch in reference: bitmap_scatter+0x68 (section: .text) -> sg_mask (section: .init.rodata)
> > WARNING: modpost: vmlinux: section mismatch in reference: bitmap_scatter+0x119 (section: .text) -> sg_mask (section: .init.rodata)
>
> I have no other idea that this is a (yet another) clang compiler bug related to
> the constant data.
Hi Andy!
+ Brian Norris <briannorris@xxxxxxxxxxxx>
I've been reported with a very similar warning from Clang 18, and the
fix is already in bitmap-for-next:
https://lore.kernel.org/lkml/Zq4uvqU3yg7bJ1Lk@yury-ThinkPad/T/#ma7a4c476f97fec16e228018b36137fdc0b2ffa4a
Compilers may not understand that small_const_nbits() is a
compile-time only condition. This is especially true if
an instrumentation like GCOV is enabled.
Check this comment from Nathan for more details:
https://lore.kernel.org/lkml/ZoxCMp_ZQ-Su-r0D@xxxxxxxxxx/T/#ma36706e8f5f06451dd0f490fc3b3ccbac15067f4
Thanks,
Yury