Re: [RFC PATCH 1/1] libstub: zboot: Use -ffunction-sections + --gc-sections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 7 Jul 2023 at 10:44, Alexandre Ghiti <alexghiti@xxxxxxxxxxxx> wrote:
>
> Hi Ard,
>
> On Wed, Jun 21, 2023 at 1:45 PM Alexandre Ghiti <alexghiti@xxxxxxxxxxxx> wrote:
> >
> > Static linking is done at an object file (actually section) granularity,
> > meaning that if a function in an object has an undefined reference, the
> > link will fail, even though this function is not used in the resulting
> > ELF.
> >
> > To avoid such failures, allow the linker to garbage collect unused sections
> > (which actually are functions).
> >
> > Signed-off-by: Alexandre Ghiti <alexghiti@xxxxxxxxxxxx>
> > ---
> >  drivers/firmware/efi/libstub/Makefile       | 1 +
> >  drivers/firmware/efi/libstub/Makefile.zboot | 2 +-
> >  2 files changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
> > index 3abb2b357482..6182366d00c0 100644
> > --- a/drivers/firmware/efi/libstub/Makefile
> > +++ b/drivers/firmware/efi/libstub/Makefile
> > @@ -40,6 +40,7 @@ KBUILD_CFLAGS                 := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> >                                    -ffreestanding \
> >                                    -fno-stack-protector \
> >                                    $(call cc-option,-fno-addrsig) \
> > +                                  -ffunction-sections \
> >                                    -D__DISABLE_EXPORTS
> >
> >  #
> > diff --git a/drivers/firmware/efi/libstub/Makefile.zboot b/drivers/firmware/efi/libstub/Makefile.zboot
> > index 89ef820f3b34..5bb52d262133 100644
> > --- a/drivers/firmware/efi/libstub/Makefile.zboot
> > +++ b/drivers/firmware/efi/libstub/Makefile.zboot
> > @@ -51,7 +51,7 @@ $(obj)/zboot-header.o: $(srctree)/drivers/firmware/efi/libstub/zboot-header.S FO
> >
> >  ZBOOT_DEPS := $(obj)/zboot-header.o $(objtree)/drivers/firmware/efi/libstub/lib.a
> >
> > -LDFLAGS_vmlinuz.efi.elf := -T $(srctree)/drivers/firmware/efi/libstub/zboot.lds
> > +LDFLAGS_vmlinuz.efi.elf := -T $(srctree)/drivers/firmware/efi/libstub/zboot.lds --gc-sections
> >  $(obj)/vmlinuz.efi.elf: $(obj)/vmlinuz.o $(ZBOOT_DEPS) FORCE
> >         $(call if_changed,ld)
> >
> > --
> > 2.39.2
> >
>
> Sorry to bother you, do you have any opinion about this patch? Does
> that make sense? If not, I should find another solution for my riscv
> KASLR series!
>

Hi,

Apologies for the delay in responding. I have been away and email
tends to pile up a bit.

The patch by itself looks fine to me, but I do wonder if your series
could be improved slightly by moving those newly shared pieces into a
separate source file, rather than to an existing one.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux