[PATCH] Makefile: Silence new GNU linker warnings
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Aug 2 12:45:14 CEST 2022
On 8/2/22 10:30, Joel Stanley wrote:
> The next version of the linker will complain about rwx segments with
> permissions and executable stacks:
>
> https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
> https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=0d38576a34ec64a1b4500c9277a8e9d0f07e6774
>
> These warnings are relevant for ELF binaries loaded by an operating
> system linker, but do not make sense in the context of u-boot where the
> objects are loaded by other means.
The ELF binary can be loaded by OpenSBI or QEMU. The information about
rwx segments can be relevant for these. Only if a non-ELF form is used
it is irrelevant.
You should instead fix the single file that has a problem:
test/overlay/test-fdt-overlay-stacked.dtb.S
Just add the missing section information or change the build flags for
this single binary.
Best regards
Heinrich
>
> Disable the warnings using the following options:
>
> --no-warn-rwx-segments
>
> warning: u-boot has a LOAD segment with RWX permissions
> warning: u-boot-spl has a LOAD segment with RWX permissions
>
> --no-warn-execstack
>
> warning: arch/arm/lib/setjmp.o: missing .note.GNU-stack section implies executable stack
> NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>
> Signed-off-by: Joel Stanley <joel at jms.id.au>
> ---
> This behaviour can be seen when building with binutils
> 2.38.90.20220713-2 from Debian testing.
>
> Makefile | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index ff25f9297486..32aac7493f8d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -432,7 +432,8 @@ KBUILD_CFLAGS := -Wall -Wstrict-prototypes \
> -fno-builtin -ffreestanding $(CSTD_FLAG)
> KBUILD_CFLAGS += -fshort-wchar -fno-strict-aliasing
> KBUILD_AFLAGS := -D__ASSEMBLY__
> -KBUILD_LDFLAGS :=
> +KBUILD_LDFLAGS := $(call ld-option, --no-warn-rwx-segments) \
> + $(call ld-option, --no-warn-execstack)
>
> ifeq ($(cc-name),clang)
> ifneq ($(CROSS_COMPILE),)
More information about the U-Boot
mailing list