svn commit: r362235 - head/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch
Kristof Provost
kp at FreeBSD.org
Tue Jun 16 18:39:56 UTC 2020
Author: kp
Date: Tue Jun 16 18:39:56 2020
New Revision: 362235
URL: https://svnweb.freebsd.org/changeset/base/362235
Log:
llvm: Default to -mno-relax on RISC-V
Compiling on a RISC-V system fails with 'relocation R_RISCV_ALIGN
requires unimplemented linker relaxation; recompile with -mno-relax'.
Our default linker (ld.lld) doesn't support relaxation, so default to
no-relax so we don't generate object files the linker can't handle.
Reviewed by: mhorne
Sponsored by: Axiado
Differential Revision: https://reviews.freebsd.org/D25210
Modified:
head/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
Modified: head/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
==============================================================================
--- head/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/RISCV.cpp Tue Jun 16 18:16:45 2020 (r362234)
+++ head/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/RISCV.cpp Tue Jun 16 18:39:56 2020 (r362235)
@@ -426,8 +426,9 @@ void riscv::getRISCVTargetFeatures(const Driver &D, co
if (Args.hasArg(options::OPT_ffixed_x31))
Features.push_back("+reserve-x31");
- // -mrelax is default, unless -mno-relax is specified.
- if (Args.hasFlag(options::OPT_mrelax, options::OPT_mno_relax, true))
+ // FreeBSD local, because ld.lld doesn't support relaxations
+ // -mno-relax is default, unless -mrelax is specified.
+ if (Args.hasFlag(options::OPT_mrelax, options::OPT_mno_relax, false))
Features.push_back("+relax");
else
Features.push_back("-relax");
More information about the svn-src-all
mailing list