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 9 pull requests #41522

Closed
wants to merge 28 commits into from
Closed

Rollup of 9 pull requests #41522

wants to merge 28 commits into from

Conversation

malbarbo and others added 28 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.
Previously the `cargotest` suite would run some arbitrary revision of Cargo's
test suite, but now that we're bundling it in tree we should be running the
Cargo submodule's test suite instead.
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.
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
```
Implement Vec::splice and String::splice (RFC 1432)

RFC: rust-lang/rfcs#1432, tracking issue: rust-lang#32310
A rebase of rust-lang#32355 with a few more tests.

Let me know if you have any ideas for more tests.

cc @SimonSapin
…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.
Run tests for the cargo submodule in tree

Previously the `cargotest` suite would run some arbitrary revision of Cargo's
test suite, but now that we're bundling it in tree we should be running the
Cargo submodule's test suite instead.
…richton

Add bootstrap support for android
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.
Add internal accessor methods to io::{Chain, Take}.

Resolves rust-lang#29067.
Fix a copy-paste error in `Instant::sub_duration`

Fixes rust-lang#41514.
@rust-highfive
Copy link
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @sfackler (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

@frewsxcv
Copy link
Member Author

@bors r+ p=10

@bors
Copy link
Contributor

bors commented Apr 25, 2017

📌 Commit c63aca0 has been approved by frewsxcv

@bors
Copy link
Contributor

bors commented Apr 25, 2017

⌛ Testing commit c63aca0 with merge 2ae53ef...

@bors
Copy link
Contributor

bors commented Apr 25, 2017

💔 Test failed - status-travis

@kennytm
Copy link
Member

kennytm commented Apr 25, 2017

macOS-check (x86_64) stuck in git clone and errored out https://travis-ci.org/rust-lang/rust/jobs/225443793 ¯\_(ツ)_/¯

#41422?

@alexcrichton
Copy link
Member

@alexcrichton
Copy link
Member

@bors: retry

@bors
Copy link
Contributor

bors commented Apr 25, 2017

⌛ Testing commit c63aca0 with merge 03d6ff7...

@eddyb
Copy link
Member

eddyb commented Apr 25, 2017

Even though it supposedly started 3 hours ago, Travis says "Running for 1 hr 48 min" for some builders, and "Running for 18 min" for others, this looks bad cc @rust-lang/tools

@kennytm
Copy link
Member

kennytm commented Apr 25, 2017

@eddyb

Although the build was created 4 hours ago (~05:00 UTC), no jobs started until 3 hours ago. According to the raw log in https://travis-ci.org/rust-lang/rust/jobs/225486381, the oldest job started at 06:44 UTC, and finished at 09:04 UTC. (Time now is 09:30 UTC). That is, the build waited almost 2 hours on Travis.

Travis has a database connectivity issue from 03:41 UTC to 04:45 UTC, so probably the response is slower when Travis is clearing the backlog esp. the macOS ones.

(AppVeyor is all-green btw.)

@bors
Copy link
Contributor

bors commented Apr 25, 2017

💔 Test failed - status-travis

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.