[Buildroot] [PATCH] package: fix builds with $(PKG)_FLAT_STACKSIZE
Fengwei Tan <[email protected]>
| Newsgroups | net.busybox.buildroot |
|---|---|
| Message-ID | <SY8P300MB0041B37C6A3A259B05B0404DF8A72@SY8P300MB0041.AUSP300.PROD.OUTLOOK.COM> |
When a package defines $(PKG)_FLAT_STACKSIZE, ELF2FLT_FLAGS contains -Wl,-elf2flt="-r -s<stack-size>". The embedded quotes are needed to keep both elf2flt options in single linker argument. However, many package Makefiles wrap $(TARGET_CFLAGS) in double quotes, for example: CFLAGS="$(TARGET_CFLAGS)" After expansion, the embedded quote terminates the outer CFLAGS quote. As a result, the shell interprets "-s<stack-size> ..." as a command instead of passing it to the compiler. Pass -r and -s<stack-size> in separate -Wl arguments instead. This avoids embedded quotes; GCC forwards both -elf2flt options to ld-elf2flt, which collects them before invoking elf2flt. Signed-off-by: Fengwei Tan <[email protected]> --- package/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/Makefile.in b/package/Makefile.in index eac28b3a96..229206d393 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -218,7 +218,7 @@ ifeq ($(BR2_riscv),y) TARGET_CFLAGS += -fPIC endif ELF2FLT_FLAGS = $(if $($(PKG)_FLAT_STACKSIZE),\ - -Wl$(comma)-elf2flt="-r -s$($(PKG)_FLAT_STACKSIZE)",\ + -Wl$(comma)-elf2flt=-r -Wl$(comma)-elf2flt=-s$($(PKG)_FLAT_STACKSIZE),\ -Wl$(comma)-elf2flt=-r) TARGET_CFLAGS += $(ELF2FLT_FLAGS) TARGET_CXXFLAGS += $(ELF2FLT_FLAGS) -- 2.43.0 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot