[PATCH] Kbuild: link barebox with -z noexecstack

Ahmad Fatoum ahmad at a3f.at
Wed Nov 2 05:48:42 PDT 2022

We don't care for permission of ELF segments, but GNU ld (BFD)
does and now with binutils 2.39+, it reports:

  ld: warning: defaultenv/defaultenv-2-menu.bbenv.o: missing
  .note.GNU-stack section implies executable stack

  ld: NOTE: This behaviour is deprecated and will be removed in a future
  version of the linker

Instead of touching all assembly objects and scripts creating them to
add the section, just set -z noexecstack at link-time. This is already
the LLVM linker (lld) default.

Reported-by: Christian Melki <christian.melki at t2data.com>
Signed-off-by: Ahmad Fatoum <ahmad at a3f.at>
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 26a0999a2e20..e57b8a4a1364 100644
--- a/Makefile
+++ b/Makefile
@@ -450,7 +450,7 @@ KBUILD_CFLAGS_KERNEL :=
-LDFLAGS_barebox	:= -Map barebox.map
+LDFLAGS_barebox	:= -Map barebox.map -z noexecstack
 # Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
 LDFLAGS_barebox += $(call ld-option, --no-dynamic-linker)

More information about the barebox mailing list