Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 15 pull requests #41539

Closed
wants to merge 40 commits into from
Closed

Rollup of 15 pull requests #41539

wants to merge 40 commits into from

Conversation

malbarbo and others added 30 commits April 18, 2017 13:50
Also spell out that read and write operations should be retried on
`ErrorKind::Interrupted` errors.

Fixes rust-lang#38494.
Turns out all six of these impls are incorrect.
ASan and TSan are supported on macOS, and this commit enables their
support.

The sanitizers are always built as *.dylib on Apple platforms, so they
cannot be statically linked into the corresponding `rustc_?san.rlib`. The
dylibs are directly copied to `lib/rustlib/x86_64-apple-darwin/lib/`
instead.

Note, although Xcode also ships with their own copies of ASan/TSan dylibs,
we cannot use them due to version mismatch.

There is a caveat: the sanitizer libraries are linked as @rpath, so the
user needs to additionally pass `-C rpath`:

    rustc -Z sanitizer=address -C rpath file.rs
                               ^~~~~~~~

Otherwise there will be a runtime error:

    dyld: Library not loaded: @rpath/libclang_rt.asan_osx_dynamic.dylib
      Referenced from: /path/to/executable
      Reason: image not found
    Abort trap: 6

The next commit includes a temporary change in compiler to force the linker
to emit a usable @rpath.
This commit sort of brings back rust-lang#40777 by upgrading back to 6.3.0. While
investigating rust-lang#40546 it was discovered that 6.3.0 appears to not spurious
fail in the same way that 6.2.0 does (which we're currently using). The
workaround for rust-lang#40184 contained in rust-lang#40777 did not work so this commit also
contains a different workaround for the gdb issue. We will not download the
6.2.0 version of gdb and use that instead of the default version that comes with
6.3.0.

I'm going to optimistically say...

Closes rust-lang#40546
With regards to the unstable book, the reference, and the
processes involved.

Also, fix up a link by pointing to the new tracking issue rather than
the older one.

Fixes rust-lang#41285
Adds rust-windbg.cmd script

Adds rust-gdb/rust-lldb equivalent for windbg that loads the Rust .natvis files on start.

This change modifies the bootstrap code to add rust-windbg to bin and the .natvis files to lib/rustlib/etc.

Example usage from cmd or PowerShell:
```
rust-windbg -c "bu rs_f442289d74765418!rs::main;g" target\debug\rs.exe
```
…chton

Support AddressSanitizer and ThreadSanitizer on x86_64-apple-darwin

[ASan](https://clang.llvm.org/docs/AddressSanitizer.html#supported-platforms) and [TSan](https://clang.llvm.org/docs/ThreadSanitizer.html#supported-platforms) are supported on macOS, and this commit enables their support.

The sanitizers are always built as `*.dylib` on Apple platforms, so they cannot be statically linked into the corresponding `rustc_?san.rlib`. The dylibs are directly copied to `lib/rustlib/x86_64-apple-darwin/lib/` instead.

Note, although Xcode also ships with their own copies of ASan/TSan dylibs, we cannot use them due to version mismatch.

----

~~There is a caveat: the sanitizer libraries are linked as `@rpath/` (due to https://reviews.llvm.org/D6018), so the user needs to additionally pass `-C rpath`:~~

**Edit:** Passing rpath is now automatic.
…richton

Add bootstrap support for android
…enkov

appveyor: Upgrade to gcc for mingw 6.3.0

This commit sort of brings back rust-lang#40777 by upgrading back to 6.3.0. While
investigating rust-lang#40546 it was discovered that 6.3.0 appears to not spurious
fail in the same way that 6.2.0 does (which we're currently using). The
workaround for rust-lang#40184 contained in rust-lang#40777 did not work so this commit also
contains a different workaround for the gdb issue. We will not download the
6.2.0 version of gdb and use that instead of the default version that comes with
6.3.0.

I'm going to optimistically say...

Closes rust-lang#40546
Specify behavior of `write_all` for `ErrorKind::Interrupted` errors

Also spell out that read and write operations should be retried on
`ErrorKind::Interrupted` errors.

Fixes rust-lang#38494.
Ariel Ben-Yehuda added 10 commits April 25, 2017 17:35
Add internal accessor methods to io::{Chain, Take}.

Resolves rust-lang#29067.
Step::replace_one should put a one, not a zero (Issue rust-lang#41492)

Turns out all six of the replace_* impls were backwards.
Fix a copy-paste error in `Instant::sub_duration`

Fixes rust-lang#41514.
Clarify the doc index

With regards to the unstable book, the reference, and the
processes involved.

Also, fix up a link by pointing to the new tracking issue rather than
the older one.

Fixes rust-lang#41285

r? @frewsxcv
Fix up vec guarnatee around capacity

Fixes rust-lang#37746

r? @rust-lang/libs
@rust-highfive
Copy link
Collaborator

r? @aturon

(rust_highfive has picked a reviewer for you, use r? to override)

@arielb1
Copy link
Contributor Author

arielb1 commented Apr 25, 2017

@bors r+ p=10

@bors
Copy link
Contributor

bors commented Apr 25, 2017

📌 Commit 8ccf0e8 has been approved by arielb1

@bors
Copy link
Contributor

bors commented Apr 25, 2017

⌛ Testing commit 8ccf0e8 with merge e4170ed...

@bors
Copy link
Contributor

bors commented Apr 25, 2017

💔 Test failed - status-appveyor

@kennytm
Copy link
Member

kennytm commented Apr 25, 2017

AppVeyor failure due to #41420.

Travis (PR) failure due to this error (#41526):

[01:02:34] failures:
[01:02:34] 
[01:02:34] ---- net/tcp.rs - net::tcp::TcpListener (line 75) stdout ----
[01:02:34] 	error[E0434]: can't capture dynamic environment in a fn item; use the || { ... } closure form instead
[01:02:34]   --> <anon>:15:15
[01:02:34]    |
[01:02:34] 15 | for stream in listener.incoming() {
[01:02:34]    |               ^^^^^^^^
[01:02:34] 
[01:02:34] error: aborting due to previous error(s)
[01:02:34] 
[01:02:34] thread 'rustc' panicked at 'Box<Any>', /checkout/src/librustc/session/mod.rs:216
[01:02:34] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:02:34] 
[01:02:34] 
[01:02:34] failures:
[01:02:34]     net/tcp.rs - net::tcp::TcpListener (line 75)
[01:02:34] 
[01:02:34] test result: FAILED. 786 passed; 1 failed; 22 ignored; 0 measured
[01:02:34] 
[01:02:34] error: test failed

@bors
Copy link
Contributor

bors commented Apr 26, 2017

☔ The latest upstream changes (presumably #41551) made this pull request unmergeable. Please resolve the merge conflicts.

@arielb1 arielb1 closed this Apr 26, 2017
@Centril Centril added the rollup A PR which is a rollup label Oct 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup
Projects
None yet
Development

Successfully merging this pull request may close these issues.