Re: [PATCH v1] sched/topology: Make compiler happy about unused constant definitions

From: 'Andy Shevchenko'
Date: Tue Aug 25 2020 - 07:30:55 EST


On Tue, Aug 25, 2020 at 10:23:05AM +0000, David Laight wrote:
> From: Andy Shevchenko
> > Sent: 25 August 2020 09:27
> > On Mon, Aug 24, 2020 at 06:09:41PM +0100, Valentin Schneider wrote:
> > > On 24/08/20 16:39, Andy Shevchenko wrote:
> > > > Compilation of almost each file ends up with
> > > >
> > > > In file included from .../include/linux/energy_model.h:10,
> > > > from .../include/linux/device.h:16,
> > > > from .../drivers/spi/spi.c:8:
> > > > .../include/linux/sched/topology.h:30:27: warning: ‘SD_DEGENERATE_GROUPS_MASK’ defined but not
> > used [-Wunused-const-variable=]
> > > > 30 | static const unsigned int SD_DEGENERATE_GROUPS_MASK =
> > > > | ^~~~~~~~~~~~~~~~~~~~~~~~~
> > > > ...
> > > >
> > > > Make compiler happy by annotating the static constants with __maybwe_unused.
> > > >
> > >
> > > That should see some use as long as the build is for SMP. This whole region
> > > is guarded by #ifdef CONFIG_SMP, so an !SMP build shouldn't trigger this.
> >
> > Isn't SMP is default for most of the kernel builds?
> > And honestly I didn't get the purpose of this comment.
>
> The real fix is to not use 'static const' in C.
> IIRC it is still a memory location (that can be patched) not
> a compile time constant.

Yep. The topology.h can be rather split to topology.c with exported symbols
(exported or just visible for linker, depends on the case).

--
With Best Regards,
Andy Shevchenko