![Ian Munsie](/assets/img/avatar_default.png)
A recent change in gcc caused this build failure: /var/lib/jenkins/workspace/gcc_kernel_build/linux/drivers/misc/cxl/cxl.h:72:27: error: ‘CXL_PSL_DLCNTL’ defined but not used [-Werror=unused-const-variable] static const cxl_p1_reg_t CXL_PSL_DLCNTL = {0x0060}; Because of this gcc commit: Commit 1bca8cbd0c68366f07277f98ce6963e10c2aa617 by mark PR28901 -Wunused-variable ignores unused const initialised variables in C 12 years ago it was decided that -Wunused-variable shouldn't warn about static const variables because some code used const static char rcsid[] strings which were never used but wanted in the code anyway. But as the bug points out this hides some real bugs. These days the usage of rcsids is not very popular anymore. So this patch changes the default to warn about unused static const variables in C with -Wunused-variable. And it adds a new option -Wno-unused-const-variable to turn this warning off. For C++ this new warning is off by default, since const variables can be used as #defines in C++. New testcases for the new defaults in C and C++ are included testing the new warning and suppressing it with an unused attribute or using -Wno-unused-const-variable. gcc/ChangeLog The cxl driver uses static consts in place of #defines in some cases for type safety, so this change causes the driver to fail to build on new copilers as these constants are not all used in every file that imports the header. Suppress the warning for this driver to return to the old behaviour of -Wunused-variable. Reported-by: Anton Blanchard <anton@au1.ibm.com> Signed-off-by: Ian Munsie <imunsie@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
11 lines
340 B
Makefile
11 lines
340 B
Makefile
ccflags-y := -Werror -Wno-unused-const-variable
|
|
|
|
cxl-y += main.o file.o irq.o fault.o native.o
|
|
cxl-y += context.o sysfs.o debugfs.o pci.o trace.o
|
|
cxl-y += vphb.o api.o
|
|
obj-$(CONFIG_CXL) += cxl.o
|
|
obj-$(CONFIG_CXL_BASE) += base.o
|
|
|
|
# For tracepoints to include our trace.h from tracepoint infrastructure:
|
|
CFLAGS_trace.o := -I$(src)
|