Re: Build failure: -Wno-unused-const-variable DNE on old GCC

From: Brian Norris
Date: Thu Jan 07 2016 - 15:18:34 EST


On Thu, Jan 07, 2016 at 11:57:31AM -0800, Joe Perches wrote:
> On Thu, 2016-01-07 at 20:44 +0100, Michal Marek wrote:
> > Dne 7.1.2016 v 20:37 Joe Perches napsal(a):
> > > On Thu, 2016-01-07 at 10:54 -0800, Brian Norris wrote:
> > > > I'm using a GCC 4.6.3 compiler for some compile tests, and I noticed
> > > > that commit 2cd55c68c0a4 ("cxl: Fix build failure due to -Wunused-variable
> > > > behaviour change") breaks my builds, because the
> > > > -Wno-unused-const-variable doesn't exist on GCC 4.6.3.
> > > >   drivers/misc/cxl/base.c: At top level:
> > > >   cc1: error: unrecognized command line option "-Wno-unused-const-variable" [-Werror]
> > > > Any thoughts on how to best fix this? I'd like not to have to scrounge
> > > > up a new cross compiler just for build tests.
> > > drivers/misc/cxl/Makefile:ccflags-y := -Werror -Wno-unused-const-variable
> > > You could take that -Wno-unused-const-variable out of the
> > > Makefile or maybe add something like:
> > >
> > > $(call cc-ifversion, -ge, 0530, -Wno-unused-const-variable)
> > >
> > > or whatever gcc version actually added that unused-const-variable check
> >
> > We have cc-disable-warning for this.
>
> Thanks Michal.

Cool, thanks! I'll send a patch to use that instead.

> Perhaps most uses of -Werror without some CONFIG_<FOO> guard
> should be removed or replaced by some other mechanism.

+1000. I'd personally like to see all one-off uses of -Werror removed.

> $ git grep -E "=\s*\-Werror" | grep -v CONFIG
> [...]
> arch/alpha/lib/Makefile:ccflags-y := -Werror
> arch/alpha/mm/Makefile:ccflags-y := -Werror
> arch/alpha/oprofile/Makefile:ccflags-y := -Werror -Wno-sign-compare
> arch/metag/oprofile/Makefile:ccflags-y += -Werror
> arch/mips/Kbuild:subdir-ccflags-y := -Werror

^^ I always patch this one out when build-testing MIPS, since I like to
turn up warning levels (e.g., W=1), but not kill the build entirely.

Regards,
Brian

> arch/sh/cchips/hd6446x/Makefile:ccflags-y := -Werror
> arch/sh/kernel/Makefile:ccflags-y := -Werror
> arch/sh/lib/Makefile:ccflags-y := -Werror
> arch/sh/mm/Makefile:ccflags-y := -Werror
> arch/sparc/kernel/Makefile:ccflags-y := -Werror
> arch/sparc/lib/Makefile:ccflags-y := -Werror
> arch/sparc/mm/Makefile:ccflags-y := -Werror
> arch/sparc/prom/Makefile:ccflags := -Werror
> drivers/gpu/drm/tilcdc/Makefile: ccflags-y += -Werror
> drivers/misc/cxl/Makefile:ccflags-y := -Werror -Wno-unused-const-variable
> drivers/scsi/aic7xxx/Makefile:ccflags-y += -Werror
> drivers/scsi/lpfc/Makefile:ccflags-y += -Werror
>