From e9541a68ede34f657d16900517018e652e0c46c2 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Mon, 21 Feb 2022 17:51:47 -0600 Subject: [PATCH] build/riscv64: Disable relaxation linker optimization under clang/lld * Fixes errors compiling under clang around 'R_RISCV_ALIGN requires unimplemented linker relaxation' * Same fix FreeBSD applied https://reviews.freebsd.org/D25210 Change-Id: I680cac5e3e73d3ebb84aa0741bcee61530405db0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4986 Reviewed-by: Alex von Gluck IV Reviewed-by: Adrien Destugues Tested-by: Commit checker robot --- build/jam/ArchitectureRules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index d49d108f43..e7dc2235ee 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -48,6 +48,11 @@ rule ArchitectureSetup architecture # TODO: These should be included in Clang's compiler specs. ccBaseFlags += -fPIC ; HAIKU_LINKFLAGS_$(architecture) += -shared ; + + # lld doesn't currently implement R_RISCV_ALIGN relaxation + if $(cpu) = riscv64 { + ccBaseFlags += -mno-relax ; + } } ccBaseFlags += $(archFlags) ;