Message ID | 20230525163827.548058-1-hamza.mahfooz@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/amd/amdgpu: introduce DRM_AMDGPU_WERROR | expand |
On 5/25/23 12:38, Hamza Mahfooz wrote: > We want to do -Werror builds on our CI. However, non-amdgpu breakages > have prevented us from doing so thus far. Also, there are a number of > additional checks that we should enable, that the community cares about > and are hidden behind -Wextra. So, define DRM_AMDGPU_WERROR to only > enable -Werror for the amdgpu kernel module and enable -Wextra while > disabling all of the checks that are too noisy. > > Cc: Alex Deucher <alexander.deucher@amd.com> > Cc: Kenny Ho <kenny.ho@amd.com> > Suggested-by: Jani Nikula <jani.nikula@linux.intel.com> > Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com> I am able to get clean builds with this enabled on GCC 11-13 and Clang 15, at least as of commit e786aef0869c ("drm/amd/display: remove unused definition") on amd-staging-drm-next. > --- > drivers/gpu/drm/amd/amdgpu/Kconfig | 10 ++++++++++ > drivers/gpu/drm/amd/amdgpu/Makefile | 9 +++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig b/drivers/gpu/drm/amd/amdgpu/Kconfig > index 07135ffa6d24..334511f331e3 100644 > --- a/drivers/gpu/drm/amd/amdgpu/Kconfig > +++ b/drivers/gpu/drm/amd/amdgpu/Kconfig > @@ -66,6 +66,16 @@ config DRM_AMDGPU_USERPTR > This option selects CONFIG_HMM and CONFIG_HMM_MIRROR if it > isn't already selected to enabled full userptr support. > > +config DRM_AMDGPU_WERROR > + bool "Force the compiler to throw an error instead of a warning when compiling" > + depends on DRM_AMDGPU > + depends on EXPERT > + depends on !COMPILE_TEST > + default n > + help > + Add -Werror to the build flags for amdgpu.ko. > + Only enable this if you are warning code for amdgpu.ko. > + > source "drivers/gpu/drm/amd/acp/Kconfig" > source "drivers/gpu/drm/amd/display/Kconfig" > source "drivers/gpu/drm/amd/amdkfd/Kconfig" > diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile > index 74a9aa6fe18c..7ee68b1bbfed 100644 > --- a/drivers/gpu/drm/amd/amdgpu/Makefile > +++ b/drivers/gpu/drm/amd/amdgpu/Makefile > @@ -39,6 +39,15 @@ ccflags-y := -I$(FULL_AMD_PATH)/include/asic_reg \ > -I$(FULL_AMD_DISPLAY_PATH)/amdgpu_dm \ > -I$(FULL_AMD_PATH)/amdkfd > > +subdir-ccflags-y := -Wextra > +subdir-ccflags-y += -Wunused-but-set-variable > +subdir-ccflags-y += -Wno-unused-parameter > +subdir-ccflags-y += -Wno-type-limits > +subdir-ccflags-y += -Wno-sign-compare > +subdir-ccflags-y += -Wno-missing-field-initializers > +subdir-ccflags-y += -Wno-override-init > +subdir-ccflags-$(CONFIG_DRM_AMDGPU_WERROR) += -Werror > + > amdgpu-y := amdgpu_drv.o > > # add KMS driver
[Public] On 5/30/23 11:24, Hamza Mahfooz wrote: > I am able to get clean builds with this enabled on GCC 11-13 and Clang > 15, at least as of commit e786aef0869c ("drm/amd/display: remove unused > definition") on amd-staging-drm-next. Did you try intentionally introducing a warning to see if the build indeed fail?
On 5/30/23 11:50, Ho, Kenny wrote: > [Public] > > On 5/30/23 11:24, Hamza Mahfooz wrote: >> I am able to get clean builds with this enabled on GCC 11-13 and Clang >> 15, at least as of commit e786aef0869c ("drm/amd/display: remove unused >> definition") on amd-staging-drm-next. > > Did you try intentionally introducing a warning to see if the build indeed fail? Yes, I tried a couple of different ones.
[Public]
Reviewed-by: Kenny Ho <Kenny.Ho@amd.com>
diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig b/drivers/gpu/drm/amd/amdgpu/Kconfig index 07135ffa6d24..334511f331e3 100644 --- a/drivers/gpu/drm/amd/amdgpu/Kconfig +++ b/drivers/gpu/drm/amd/amdgpu/Kconfig @@ -66,6 +66,16 @@ config DRM_AMDGPU_USERPTR This option selects CONFIG_HMM and CONFIG_HMM_MIRROR if it isn't already selected to enabled full userptr support. +config DRM_AMDGPU_WERROR + bool "Force the compiler to throw an error instead of a warning when compiling" + depends on DRM_AMDGPU + depends on EXPERT + depends on !COMPILE_TEST + default n + help + Add -Werror to the build flags for amdgpu.ko. + Only enable this if you are warning code for amdgpu.ko. + source "drivers/gpu/drm/amd/acp/Kconfig" source "drivers/gpu/drm/amd/display/Kconfig" source "drivers/gpu/drm/amd/amdkfd/Kconfig" diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile index 74a9aa6fe18c..7ee68b1bbfed 100644 --- a/drivers/gpu/drm/amd/amdgpu/Makefile +++ b/drivers/gpu/drm/amd/amdgpu/Makefile @@ -39,6 +39,15 @@ ccflags-y := -I$(FULL_AMD_PATH)/include/asic_reg \ -I$(FULL_AMD_DISPLAY_PATH)/amdgpu_dm \ -I$(FULL_AMD_PATH)/amdkfd +subdir-ccflags-y := -Wextra +subdir-ccflags-y += -Wunused-but-set-variable +subdir-ccflags-y += -Wno-unused-parameter +subdir-ccflags-y += -Wno-type-limits +subdir-ccflags-y += -Wno-sign-compare +subdir-ccflags-y += -Wno-missing-field-initializers +subdir-ccflags-y += -Wno-override-init +subdir-ccflags-$(CONFIG_DRM_AMDGPU_WERROR) += -Werror + amdgpu-y := amdgpu_drv.o # add KMS driver
We want to do -Werror builds on our CI. However, non-amdgpu breakages have prevented us from doing so thus far. Also, there are a number of additional checks that we should enable, that the community cares about and are hidden behind -Wextra. So, define DRM_AMDGPU_WERROR to only enable -Werror for the amdgpu kernel module and enable -Wextra while disabling all of the checks that are too noisy. Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Kenny Ho <kenny.ho@amd.com> Suggested-by: Jani Nikula <jani.nikula@linux.intel.com> Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com> --- drivers/gpu/drm/amd/amdgpu/Kconfig | 10 ++++++++++ drivers/gpu/drm/amd/amdgpu/Makefile | 9 +++++++++ 2 files changed, 19 insertions(+)