Subject: Re: GCC 12 warnings

From: Jakub Kicinski <[email-masked]>
Date: Fri, 20 May 2022 10:23:55 -0700

On Fri, 20 May 2022 09:46:36 -0700 Kees Cook wrote:
> > Since -Warray-bounds is included by default now this is making our
> > lives a little hard [1]. Is there a wider effort to address this?
> > If not do you have a recommendation on how to deal with it?  
> 
> Looks like the issue was this?
> https://lore.kernel.org/all/[email-masked]/
> 
> Ah, from cf2df74e202d ("net: fix dev_fill_forward_path with pppoe + bridge")
> 
> You mean you missed this particular warning because of the other GCC
> 12 warnings?

Yup :(

> > My best idea is to try to isolate the bad files and punt -Warray-bounds
> > to W=1 for those, so we can prevent more of them getting in but not
> > break WERROR builds on GCC 12. That said, I'm not sure how to achieve
> > that.. This for example did not work:
> > 
> > --- a/drivers/net/ethernet/mediatek/Makefile
> > +++ b/drivers/net/ethernet/mediatek/Makefile
> > @@ -9,5 +9,9 @@ mtk_eth-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed.o
> >  ifdef CONFIG_DEBUG_FS
> >  mtk_eth-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_debugfs.o
> >  endif
> >  obj-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_ops.o
> >  obj-$(CONFIG_NET_MEDIATEK_STAR_EMAC) += mtk_star_emac.o
> > +
> > +ifneq ($(findstring 1, $(KBUILD_EXTRA_WARN)),)
> > +CFLAGS_mtk_ppe.o += -Wno-array-bounds
> > +endif  
> 
> This worked for me:
> 
> diff --git a/drivers/net/can/usb/kvaser_usb/Makefile b/drivers/net/can/usb/kvaser_usb/Makefile
> index cf260044f0b9..43eb921f9102 100644
> --- a/drivers/net/can/usb/kvaser_usb/Makefile
> +++ b/drivers/net/can/usb/kvaser_usb/Makefile
> @@ -1,3 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  obj-$(CONFIG_CAN_KVASER_USB) += kvaser_usb.o
>  kvaser_usb-y = kvaser_usb_core.o kvaser_usb_leaf.o kvaser_usb_hydra.o
> +
> +ifeq ($(KBUILD_EXTRA_WARN),)
> +CFLAGS_kvaser_usb_hydra.o += -Wno-array-bounds
> +endif

Ah, thanks, I must have tried -Wno-array-bounds before I figured out
the condition and reverted back to full $(call cc-disable-warning, ..)
Let me redo the patches.

Thanks!