lkml.org 
[lkml]   [2021]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 13/28] riscv: Use -mno-relax when using lld linker
    Date
    From: Khem Raj <raj.khem@gmail.com>

    [ Upstream commit ec3a5cb61146c91f0f7dcec8b7e7157a4879a9ee ]

    lld does not implement the RISCV relaxation optimizations like GNU ld
    therefore disable it when building with lld, Also pass it to
    assembler when using external GNU assembler ( LLVM_IAS != 1 ), this
    ensures that relevant assembler option is also enabled along. if these
    options are not used then we see following relocations in objects

    0000000000000000 R_RISCV_ALIGN *ABS*+0x0000000000000002

    These are then rejected by lld
    ld.lld: error: capability.c:(.fixup+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax but the .o is already compiled with -mno-relax

    Signed-off-by: Khem Raj <raj.khem@gmail.com>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/riscv/Makefile | 9 +++++++++
    1 file changed, 9 insertions(+)

    diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
    index f5e914210245..1cbe0ad78b0f 100644
    --- a/arch/riscv/Makefile
    +++ b/arch/riscv/Makefile
    @@ -34,6 +34,15 @@ else
    KBUILD_LDFLAGS += -melf32lriscv
    endif

    +ifeq ($(CONFIG_LD_IS_LLD),y)
    + KBUILD_CFLAGS += -mno-relax
    + KBUILD_AFLAGS += -mno-relax
    +ifneq ($(LLVM_IAS),1)
    + KBUILD_CFLAGS += -Wa,-mno-relax
    + KBUILD_AFLAGS += -Wa,-mno-relax
    +endif
    +endif
    +
    # ISA string setting
    riscv-march-$(CONFIG_ARCH_RV32I) := rv32ima
    riscv-march-$(CONFIG_ARCH_RV64I) := rv64ima
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-06-16 17:35    [W:2.803 / U:0.692 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site