[PATCH v3 1/1] sandbox: eliminate unused functions from binaries
Simon Glass
sjg at chromium.org
Tue Oct 24 20:03:05 CEST 2023
Hi Heinrich,
On Mon, 23 Oct 2023 at 23:31, Heinrich Schuchardt
<heinrich.schuchardt at canonical.com> wrote:
>
> The sandbox should closely mimic other architectures.
>
> Place each function or data in a separate section and let the linker
> eliminate unused ones. This will reduce the binary size.
>
> In the linker script mark that u_boot_sandbox_getopt are to be kept.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
> v3:
> avoid duplicate -Wl,--gc-sections
> only use KEEP for unreferenced symbols
> v2:
> mark _u_boot_sandbox_getopt sections as KEEP()
> ---
> arch/sandbox/config.mk | 4 ++--
> arch/sandbox/cpu/u-boot.lds | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
I would still rather not do this, I am OK with trying it so long as we
can revert it if it causes problems.
>
> diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk
> index 2d184c5f65..1d50991f8d 100644
> --- a/arch/sandbox/config.mk
> +++ b/arch/sandbox/config.mk
> @@ -2,7 +2,7 @@
> # Copyright (c) 2011 The Chromium OS Authors.
>
> PLATFORM_CPPFLAGS += -D__SANDBOX__ -U_FORTIFY_SOURCE
> -PLATFORM_CPPFLAGS += -fPIC
> +PLATFORM_CPPFLAGS += -fPIC -ffunction-sections -fdata-sections
> PLATFORM_LIBS += -lrt
> SDL_CONFIG ?= sdl2-config
>
> @@ -30,7 +30,7 @@ cmd_u-boot__ = $(CC) -o $@ -Wl,-T u-boot.lds $(u-boot-init) \
> $(u-boot-main) \
> $(u-boot-keep-syms-lto) \
> -Wl,--no-whole-archive \
> - $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map
> + $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map -Wl,--gc-sections
>
> cmd_u-boot-spl = (cd $(obj) && $(CC) -o $(SPL_BIN) -Wl,-T u-boot-spl.lds \
> $(KBUILD_LDFLAGS:%=-Wl,%) \
> diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
> index ba8dee50c7..52f13af374 100644
> --- a/arch/sandbox/cpu/u-boot.lds
> +++ b/arch/sandbox/cpu/u-boot.lds
> @@ -15,7 +15,7 @@ SECTIONS
>
> _u_boot_sandbox_getopt : {
> *(_u_boot_sandbox_getopt_start)
> - *(_u_boot_sandbox_getopt)
> + KEEP(*(_u_boot_sandbox_getopt))
> *(_u_boot_sandbox_getopt_end)
> }
>
> --
> 2.40.1
>
Regards,
Simon
More information about the U-Boot
mailing list