[issue report] ARM: compile error of frame size
Liam R. Howlett
Liam.Howlett at oracle.com
Tue Oct 14 09:53:15 PDT 2025
* Geert Uytterhoeven <geert at linux-m68k.org> [251014 10:47]:
> 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...
>
I've been working on fixing this for a while and am approaching a point
where I'll share my solution.
The change is non-trivial and is required for expanding node type
support. But with the amount of change this introduces, I do not want
to backport the patch set, if possible.
Considering how close we are here (16 bytes), it may be better to find
another solution to avoid the particular troubled builds.
It is odd that this only shows up in certain cases though. Is there a
particular config option that is needed to cause the size to grow beyond
1024?
Thanks,
Liam
More information about the linux-arm-kernel
mailing list