Changeset View
Changeset View
Standalone View
Standalone View
lang/rust/files/patch-vendor_cc_src_lib.rs
- This file was added.
Property | Old Value | New Value |
---|---|---|
fbsd:nokeywords | null | yes \ No newline at end of property |
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
When the compiler has "clang" in its name the cc crate will pass | |||||
an LLVM target triple to it. Rust uses a triple that lacks the OS | |||||
version and LLVM will default to FreeBSD 9 behavior, i.e., it will | |||||
default to libstdc++ which is no longer available in newer releases. | |||||
To avoid this issue assume we have a GNU compatible toolchain instead | |||||
until LLVM can be updated to use libc++ by default. | |||||
https://reviews.llvm.org/D77776 | |||||
--- vendor/cc/src/lib.rs.orig 2020-04-14 08:55:10 UTC | |||||
+++ vendor/cc/src/lib.rs | |||||
@@ -2353,28 +2353,7 @@ impl Tool { | |||||
} | |||||
fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self { | |||||
- // Try to detect family of the tool from its name, falling back to Gnu. | |||||
- let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) { | |||||
- if fname.contains("clang-cl") { | |||||
- ToolFamily::Msvc { clang_cl: true } | |||||
- } else if fname.contains("cl") | |||||
- && !fname.contains("cloudabi") | |||||
- && !fname.contains("uclibc") | |||||
- && !fname.contains("clang") | |||||
- { | |||||
- ToolFamily::Msvc { clang_cl: false } | |||||
- } else if fname.contains("clang") { | |||||
- match clang_driver { | |||||
- Some("cl") => ToolFamily::Msvc { clang_cl: true }, | |||||
- _ => ToolFamily::Clang, | |||||
- } | |||||
- } else { | |||||
- ToolFamily::Gnu | |||||
- } | |||||
- } else { | |||||
- ToolFamily::Gnu | |||||
- }; | |||||
- | |||||
+ let family = ToolFamily::Gnu; | |||||
Tool { | |||||
path: path, | |||||
cc_wrapper_path: None, |