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

From: Joe Perches <[email-masked]>
Date: Thu, 07 Jan 2016 11:57:31 -0800

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.

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

$ 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
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