mirror of
https://github.com/rust-lang/rust
synced 2024-10-20 07:23:51 +00:00
Explain why libatomic is not needed on FreeBSD riscv64
From Jessica Clarke (jrtc27@)
This commit is contained in:
parent
47474f1055
commit
e24045e587
|
@ -276,7 +276,10 @@ fn main() {
|
|||
"stdc++"
|
||||
};
|
||||
|
||||
// RISC-V requires libatomic for sub-word atomic operations
|
||||
// RISC-V GCC erroneously requires libatomic for sub-word
|
||||
// atomic operations. FreeBSD uses Clang as its system
|
||||
// compiler and provides no libatomic in its base system so
|
||||
// does not want this.
|
||||
if !target.contains("freebsd") && target.starts_with("riscv") {
|
||||
println!("cargo:rustc-link-lib=atomic");
|
||||
}
|
||||
|
|
|
@ -250,8 +250,13 @@ fn run(self, builder: &Builder<'_>) -> PathBuf {
|
|||
}
|
||||
|
||||
if !target.contains("freebsd") && 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.
|
||||
// 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 {
|
||||
|
|
Loading…
Reference in a new issue