diff options
| author | bors <bors@rust-lang.org> | 2020-08-15 11:38:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-08-15 11:38:24 +0000 |
| commit | 80fb3f3139c7dee7f211964c6a0b3ccb04b83d5e (patch) | |
| tree | 75b4e6ba2a2080af0d2a6f36a64d7b52c0e8a20e /compiler/rustc_errors/src/snippet.rs | |
| parent | 1e58871d25c9ef4d2edbc331dedcc7f0543eea15 (diff) | |
| parent | ddbc45673b11f706e94fa17730eaa5c113f224d7 (diff) | |
| download | rust-80fb3f3139c7dee7f211964c6a0b3ccb04b83d5e.tar.gz rust-80fb3f3139c7dee7f211964c6a0b3ccb04b83d5e.zip | |
Auto merge of #74576 - myfreeweb:freebsd-sanitizers, r=oli-obk
Add sanitizer support on FreeBSD
Restarting #47337. Everything is better now, no more weird llvm problems, well not everything:
Unfortunately, the sanitizers don't have proper support for versioned symbols (https://github.com/google/sanitizers/issues/628), so `libc`'s usage of `stat@FBSD_1.0` and so on explodes, e.g. in calling `std::fs::metadata`.
Building std (now easy thanks to cargo `-Zbuild-std`) and libc with `freebsd12/13` config via the `LIBC_CI=1` env variable is a good workaround…
```
LIBC_CI=1 RUSTFLAGS="-Z sanitizer=address" cargo +san-test -Zbuild-std run --target x86_64-unknown-freebsd --verbose
```
…*except* std won't build because there's no `st_lspare` in the ino64 version of the struct, so an std patch is required:
```diff
--- i/src/libstd/os/freebsd/fs.rs
+++ w/src/libstd/os/freebsd/fs.rs
@@ -66,8 +66,6 @@ pub trait MetadataExt {
fn st_flags(&self) -> u32;
#[stable(feature = "metadata_ext2", since = "1.8.0")]
fn st_gen(&self) -> u32;
- #[stable(feature = "metadata_ext2", since = "1.8.0")]
- fn st_lspare(&self) -> u32;
}
#[stable(feature = "metadata_ext", since = "1.1.0")]
@@ -136,7 +134,4 @@ impl MetadataExt for Metadata {
fn st_flags(&self) -> u32 {
self.as_inner().as_inner().st_flags as u32
}
- fn st_lspare(&self) -> u32 {
- self.as_inner().as_inner().st_lspare as u32
- }
}
```
I guess std could like.. detect that `libc` isn't built for the old ABI, and replace the implementation of `st_lspare` with a panic?
Diffstat (limited to 'compiler/rustc_errors/src/snippet.rs')
0 files changed, 0 insertions, 0 deletions
