[issue report] ARM: compile error of frame size
Geert Uytterhoeven
geert at linux-m68k.org
Tue Oct 14 07:47:22 PDT 2025
Hi Arnd,
On Tue, 29 Jul 2025 at 09:49, Geert Uytterhoeven <geert at linux-m68k.org> wrote:
> On Tue, 29 Jul 2025 at 09:27, Arnd Bergmann <arnd at arndb.de> wrote:
> > On Tue, Jul 29, 2025, at 09:15, Geert Uytterhoeven wrote:
> > > On Tue, 29 Jul 2025 at 02:12, Kuninori Morimoto
> > > <kuninori.morimoto.gx at renesas.com> wrote:
> > >> > > > grep CONFIG_FRAME_WARN .config
> > >> > > CONFIG_FRAME_WARN=2040
> > >> > >
> > >> > > > git diff
> > >> > > diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> > >> > > index d61369b1eabe..c5173bd82380 100644
> > >> > > --- a/arch/arm/boot/compressed/Makefile
> > >> > > +++ b/arch/arm/boot/compressed/Makefile
> > >> > > @@ -80,7 +80,7 @@ libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o
> > >> > >
> > >> > > ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
> > >> > > CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
> > >> > > - CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
> > >> > > + CFLAGS_atags_to_fdt.o += -Wframe-larger-than=2040
> > >> > > OBJS += $(libfdt_objs) atags_to_fdt.o
> > >> > > endif
> > >> > > ifeq ($(CONFIG_USE_OF),y)
> > >> (snip)
> > >> > Yes it is. And it is hard to fix, according to the maple_tree maintainer:
> > >>
> > >> Hmm...
> > >> Actually I have tried to same solution (= remove or fix the big node), but
> > >> noticed there are many such code. My suggested was very simple solution
> > >> I guess, but I'm not sure detail of ARM limitation, and/or it can solve all
> > >> cases, etc...
> > >>
> > >> But other CPU (like ARM64) doesn't have this issue, so we can follow same
> > >> way (= allow large frame) I guess.
> > >
> > > I do see it in one my arm64 builds, it depends on your kernel config:
> > >
> > > lib/maple_tree.c: In function ‘mas_wr_spanning_store’:
> > > lib/maple_tree.c:3812:1: warning: the frame size of 1040 bytes is
> > > larger than 1024 bytes [-Wframe-larger-than=] 3812 | }
> > >
> > > I guess Arnd has seen it in his randconfig builds, too...
> > >
> > >> Does ARM has some reason which can't use large frame ? If not, do you think
> > >> we can allow to use it on ARM ?
> > >
> > > (stacked) Large frames may cause kernel stack overflow.
> >
> > The version below works around the warning for arm, arm64 and x86
> > on both gcc and clang.
>
> Thanks, that indeed works for my arm64 config that triggered it before.
Unfortunately it no longer helps for my rbxt4927 build...
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-arm-kernel
mailing list