[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