[U-Boot] [PATCH v3 2/8] riscv: Enable function sections

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Apr 23 07:35:06 UTC 2018



On 04/23/2018 07:59 AM, Alexander Graf wrote:
> The linker can remove sections that are never addressed, so it makes a lot
> of sense to declare every function as an individual section.
> 
> This reduces the output U-Boot code size by ~30kb for me.
> 
> Signed-off-by: Alexander Graf <agraf at suse.de>
> ---
>   arch/riscv/config.mk | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/riscv/config.mk b/arch/riscv/config.mk
> index 6b681c4286..69f4cf6ce8 100644
> --- a/arch/riscv/config.mk
> +++ b/arch/riscv/config.mk
> @@ -29,5 +29,5 @@ CONFIG_STANDALONE_LOAD_ADDR = 0x00000000 \
>   			      -T $(srctree)/examples/standalone/riscv.lds
>   
>   PLATFORM_CPPFLAGS	+= -ffixed-gp -fpic
> -PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -gdwarf-2
> +PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -gdwarf-2 -ffunction-sections

Other architectures also use -fdata-sections.
Why wouldn't we set it for RISC-V?

Cf. 
https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/Optimize-Options.html#index-fdata-sections

Regards

Heinrich

>   LDFLAGS_u-boot += --gc-sections -static -pie
> 


More information about the U-Boot mailing list