• Anup Patel's avatar
    RISC-V: Make BSS section as the last section in vmlinux.lds.S · 22e6a2e1
    Anup Patel authored
    The objcopy only emits loadable sections when creating flat kernel
    Image. To have minimal possible size of flat kernel Image, we should
    have all non-loadable sections after loadable sections.
    
    Currently, execption table section (loadable section) is after BSS
    section (non-loadable section) in the RISC-V vmlinux.lds.S. This
    is not optimal for having minimal flat kernel Image size hence this
    patch makes BSS section as the last section in RISC-V vmlinux.lds.S.
    
    In addition, we make BSS section aligned to 16byte instead of PAGE
    aligned which further reduces flat kernel Image size by few KBs.
    
    The flat kernel Image size of Linux-4.20-rc4 using GCC 8.2.0 is
    8819980 bytes with current RISC-V vmlinux.lds.S and it reduces to
    7991740 bytes with this patch applied. In summary, this patch reduces
    Linux-4.20-rc4 flat kernel Image size by 809 KB.
    Signed-off-by: default avatarAnup Patel <anup@brainfault.org>
    Reviewed-by: default avatarBin Meng <bmeng.cn@gmail.com>
    Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
    22e6a2e1
vmlinux.lds.S 1.74 KB