[PATCH] Kbuild: link barebox with -z noexecstack
Ahmad Fatoum
a.fatoum at pengutronix.de
Sat Nov 5 05:15:09 PDT 2022
On 02.11.22 13:55, Ahmad Fatoum wrote:
> On 02.11.22 13:48, Ahmad Fatoum wrote:
>> 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>
>> ---
>
> Please dismiss. I think we should just add it to KBUILD_LDFLAGS globally.
I'll be away for a few weeks, so noting here how Linux does it:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffcf9c5700e49c0aee42dcba9a12ba21338e8136
https://lore.kernel.org/all/20220808192321.3490995-1-ndesaulniers@google.com/
In case someone else wants to get rid of the warning in the meantime.
Cheers,
Ahmad
>
>> 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 :=
>> KBUILD_AFLAGS_MODULE := -DMODULE
>> KBUILD_CFLAGS_MODULE := -DMODULE
>>
>> -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)
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list