diff options
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/bootstrap.py | 2 | ||||
| -rw-r--r-- | src/bootstrap/native.rs | 11 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py index 22f2e405a1e..ca7ad532030 100644 --- a/src/bootstrap/bootstrap.py +++ b/src/bootstrap/bootstrap.py @@ -265,7 +265,7 @@ def default_build_triple(verbose): err = "unknown OS type: {}".format(ostype) sys.exit(err) - if cputype == 'powerpc' and ostype == 'unknown-freebsd': + if cputype in ['powerpc', 'riscv'] and ostype == 'unknown-freebsd': cputype = subprocess.check_output( ['uname', '-p']).strip().decode(default_encoding) cputype_mapper = { diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs index 37578e30f6d..4a754e6da12 100644 --- a/src/bootstrap/native.rs +++ b/src/bootstrap/native.rs @@ -249,9 +249,14 @@ impl Step for Llvm { } } - if target.starts_with("riscv") { - // In RISC-V, using C++ atomics require linking to `libatomic` but the LLVM build - // system check cannot detect this. Therefore it is set manually here. + if !target.contains("freebsd") && target.starts_with("riscv") { + // RISC-V GCC erroneously requires linking against + // `libatomic` when using 1-byte and 2-byte C++ + // atomics but the LLVM build system check cannot + // detect this. Therefore it is set manually here. + // FreeBSD uses Clang as its system compiler and + // provides no libatomic in its base system so does + // not want this. if !builder.config.llvm_tools_enabled { cfg.define("CMAKE_EXE_LINKER_FLAGS", "-latomic"); } else { |
