Re: [PATCH -next] arm32/boot/compressed: Force hidden visibility for all symbol references
From: Ard Biesheuvel
Date: Fri Jan 24 2025 - 09:00:30 EST
On Fri, 24 Jan 2025 at 09:31, Yuntao Liu <liuyuntao12@xxxxxxxxxx> wrote:
>
> Eliminate all GOT entries in the decompressor binary, by forcing hidden
> visibility for all symbol references, which informs the compiler that
> such references will be resolved at link time without the need for
> allocating GOT entries.
>
> Include linux/hidden.h in Makefile, like x86, for the
> hidden visibility attribute.
>
> Signed-off-by: Yuntao Liu <liuyuntao12@xxxxxxxxxx>
Doesn't this break appended DTB?
> ---
> arch/arm/boot/compressed/Makefile | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> index 945b5975fce2..d8a17760ad29 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -93,6 +93,9 @@ targets := vmlinux vmlinux.lds piggy_data piggy.o \
> head.o $(OBJS)
>
> KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
> +ifneq ($(CONFIG_LD_IS_LLD),y)
> +KBUILD_CFLAGS += -include $(srctree)/include/linux/hidden.h
> +endif
>
Why not for LLD?
> ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \
> -I$(srctree)/scripts/dtc/libfdt -fno-stack-protector \
> --
> 2.34.1
>