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

Delete most of `src/bootstrap/bin/rustc.rs` #64316

Open
wants to merge 28 commits into
base: master
from

Conversation

@alexcrichton
Copy link
Member

commented Sep 9, 2019

This commit is an attempt at deleting as much of the rustc.rs shim that we have in rustbuild as possible. This shim predates RUSTFLAGS and is as old as rustbuild itself. While useful for quick hacks, it subverts Cargo's knowledge of rustc, makes it more difficult to build crates out of rustbuild, and is generally a hazard/code smell due to its architecture.

Additionally since the inception of this script we've added a number of features to Cargo such as profile overrides and RUSTFLAGS. This commit attempts to use these features of Cargo as much as possible to delete almost all of src/bootstrap/bin/rustc.rs. It's hoped that all new configuration for the Rust compiler can be codified in rustbuild rather than in this shim, allowing Cargo to have more knowledge about what's going on and making it a bit easier to reproduce builds outside of Cargo itself.

This was primarily motivated by some recent work on std-aware Cargo, and is also generally a cleanup of the script itself. This internally resulted in a number of refactorings of rustbuild itself, and the commits should be readable one-at-a-time instead of having to digest them all at once.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Sep 9, 2019

r? @nikomatsakis

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

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Sep 9, 2019

⚠️ Warning ⚠️

  • These commits modify submodules.
@alexcrichton

This comment has been minimized.

Copy link
Member Author

commented Sep 9, 2019

@Mark-Simulacrum
Copy link
Member

left a comment

Overall looks excellent, left a few comments here and there though.

Edit: Looks like GH has deemed some of these outdated but I think not all of them are, I've resolved some of the comments below if they turned out to be replaced by a later one

src/bootstrap/builder.rs Outdated Show resolved Hide resolved
src/bootstrap/builder.rs Outdated Show resolved Hide resolved
src/bootstrap/builder.rs Show resolved Hide resolved
src/bootstrap/bin/rustc.rs Show resolved Hide resolved
src/bootstrap/builder.rs Outdated Show resolved Hide resolved
@@ -1051,8 +1051,8 @@ impl<'a> Builder<'a> {

cargo.env("RUSTC_VERBOSE", self.verbosity.to_string());

if self.config.deny_warnings {
cargo.env("RUSTC_DENY_WARNINGS", "1");
if self.config.deny_warnings && !mode.is_tool() {

This comment has been minimized.

Copy link
@Mark-Simulacrum

Mark-Simulacrum Sep 9, 2019

Member

So this is a behavior change -- EXTERNAL_TOOL is not equivalent to !tool unfortunately. That'll mean that in-tree tools no longer get passed deny warnings and all.

This comment has been minimized.

Copy link
@alexcrichton

alexcrichton Sep 10, 2019

Author Member

Agreed yeah, but we don't really have that many internal tools and putting #![deny(warnings)] on them as necessary didn't really seem like it was the end of the world.

This comment has been minimized.

Copy link
@Mark-Simulacrum

Mark-Simulacrum Sep 10, 2019

Member

Hm, I think this PR doesn't add the deny(warnings) in to the internal tools though? I'd probably want to do that here since we don't want to regress on that.

This comment has been minimized.

Copy link
@alexcrichton

alexcrichton Sep 10, 2019

Author Member

Sure, I've added a bunch of #![deny(warnings)] now

This comment has been minimized.

Copy link
@petrochenkov

petrochenkov Sep 10, 2019

Contributor

Can't we track the is_external flag for tools in builder.rs to avoid regressing this?

Previously we had a single point (ok, two points) to which all the new lints could be added, now we have a bunch of #![deny(warnings)] annotations which are easy to miss and it's not immediately clear which crates should have them and which should not.

This comment has been minimized.

Copy link
@alexcrichton

alexcrichton Sep 10, 2019

Author Member

It's possible, but it seems sort of overkill for this purpose. Most of the tools never change and don't really have any reason to follow the rest of the compiler religiously. They're built so rarely that having warnings isn't really a problem since they typically only show up in CI logs anyway.

This comment has been minimized.

Copy link
@petrochenkov

petrochenkov Sep 16, 2019

Contributor

It's useful to have a single point to add flags affecting all Rust code in the codebase except for the code we don't control.
If you don't want to do it as a part of this PR, please make an issue to be fixed later.

This comment has been minimized.

Copy link
@Mark-Simulacrum

Mark-Simulacrum Sep 16, 2019

Member

I personally think that for the most part just having deny(warnings) manually in the tools is fine but can definitely see the appeal of having this threaded through. Opened an issue: #64523

src/bootstrap/builder.rs Outdated Show resolved Hide resolved
.arg("-Zconfig-profile");

let profile_var = |name: &str| {
let profile = if self.config.rust_optimize {

This comment has been minimized.

Copy link
@Mark-Simulacrum

Mark-Simulacrum Sep 9, 2019

Member

unrelated note: we should probably drop rust_optimize as a config flag entirely since there's no real point in a non-optimized build I imagine

src/bootstrap/compile.rs Show resolved Hide resolved
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Sep 9, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-09-09T17:38:40.3427321Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-09T17:38:41.1899622Z ##[command]git config gc.auto 0
2019-09-09T17:38:41.1907776Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-09T17:38:41.1911849Z ##[command]git config --get-all http.proxy
2019-09-09T17:38:41.1914244Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64316/merge:refs/remotes/pull/64316/merge
---
2019-09-09T18:45:25.7876285Z .................................................................................................... 1500/9003
2019-09-09T18:45:32.0205141Z .................................................................................................... 1600/9003
2019-09-09T18:45:45.6940700Z .....................................................i...............i.............................. 1700/9003
2019-09-09T18:45:54.0972014Z .................................................................................................... 1800/9003
2019-09-09T18:46:09.7951161Z ............................................iiiii................................................... 1900/9003
2019-09-09T18:46:21.7954512Z .................................................................................................... 2100/9003
2019-09-09T18:46:24.6085580Z .................................................................................................... 2200/9003
2019-09-09T18:46:28.8949137Z .................................................................................................... 2300/9003
2019-09-09T18:46:37.3529397Z .................................................................................................... 2400/9003
---
2019-09-09T18:49:51.4238691Z ...............................i...............i.................................................... 4700/9003
2019-09-09T18:50:04.3742124Z .................................................................................................... 4800/9003
2019-09-09T18:50:11.1364736Z .................................................................................................... 4900/9003
2019-09-09T18:50:22.9149536Z .................................................................................................... 5000/9003
2019-09-09T18:50:29.2091395Z .............ii.ii.................................................................................. 5100/9003
2019-09-09T18:50:40.9211436Z .................................................................................................... 5300/9003
2019-09-09T18:50:51.7282349Z ............................................................................i....................... 5400/9003
2019-09-09T18:50:59.9034246Z .................................................................................................... 5500/9003
2019-09-09T18:51:06.7076831Z .................................................................................................... 5600/9003
2019-09-09T18:51:06.7076831Z .................................................................................................... 5600/9003
2019-09-09T18:51:18.3653102Z ......................................................................ii...i..ii...........i........ 5700/9003
2019-09-09T18:51:45.5458932Z .................................................................................................... 5900/9003
2019-09-09T18:51:55.9348011Z .................................................................................................... 6000/9003
2019-09-09T18:51:55.9348011Z .................................................................................................... 6000/9003
2019-09-09T18:52:04.8453296Z ........................................................................i..ii....................... 6100/9003
2019-09-09T18:52:36.8044003Z .................................................................................................... 6300/9003
2019-09-09T18:52:39.0873427Z ...............................i.................................................................... 6400/9003
2019-09-09T18:52:41.4068250Z .................................................................................................... 6500/9003
2019-09-09T18:52:44.2690764Z ...i................................................................................................ 6600/9003
---
2019-09-09T18:57:54.3119284Z  finished in 21.498
2019-09-09T18:57:54.3332139Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T18:57:54.5163539Z 
2019-09-09T18:57:54.5163851Z running 150 tests
2019-09-09T18:57:58.0662986Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-09-09T18:58:00.2482077Z ..iiii..............i.........iii.i.......ii......
2019-09-09T18:58:00.2483654Z 
2019-09-09T18:58:00.2485937Z  finished in 5.915
2019-09-09T18:58:00.2684013Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T18:58:00.4538914Z 
---
2019-09-09T18:58:02.7114088Z  finished in 2.442
2019-09-09T18:58:02.7332410Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T18:58:02.9068425Z 
2019-09-09T18:58:02.9069313Z running 9 tests
2019-09-09T18:58:02.9070599Z iiiiiiiii
2019-09-09T18:58:02.9073212Z 
2019-09-09T18:58:02.9073504Z  finished in 0.174
2019-09-09T18:58:02.9286866Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T18:58:03.1124593Z 
---
2019-09-09T18:58:23.6077617Z  finished in 20.106
2019-09-09T18:58:23.6079121Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T18:58:23.6079204Z 
2019-09-09T18:58:23.6079252Z running 123 tests
2019-09-09T18:58:49.3437754Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-09-09T18:58:54.4425323Z i.i.i......iii.i.....ii
2019-09-09T18:58:54.4425791Z 
2019-09-09T18:58:54.4427256Z  finished in 31.384
2019-09-09T18:58:54.4438799Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T18:58:54.4439139Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-09-09T19:13:10.7088123Z .................................................................................................... 100/977
2019-09-09T19:13:10.7188608Z .................................................................................................... 200/977
2019-09-09T19:13:10.7277922Z .................................................................................................... 300/977
2019-09-09T19:13:10.7464082Z .................................................................................................... 400/977
2019-09-09T19:13:10.9263689Z ..ii................................................................................................ 500/977
2019-09-09T19:13:10.9848295Z .................................................................................................... 700/977
2019-09-09T19:13:10.9914704Z .................................................................................................... 800/977
2019-09-09T19:13:11.6057589Z .................................................................................................... 900/977
2019-09-09T19:13:12.8000941Z .............................................................................
2019-09-09T19:13:12.8000941Z .............................................................................
2019-09-09T19:13:12.8001933Z test result: ok. 975 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out
2019-09-09T19:13:12.8002221Z 
2019-09-09T19:13:12.8003873Z    Doc-tests core
2019-09-09T19:13:18.3654516Z 
2019-09-09T19:13:18.3672290Z running 2400 tests
2019-09-09T19:13:30.3211665Z ......iiiii......................................................................................... 100/2400
2019-09-09T19:13:41.9583757Z ...........................................................................ii....................... 200/2400
2019-09-09T19:13:55.0672271Z .................................................................................................i.. 300/2400
2019-09-09T19:14:09.1825640Z .................................................................................................... 400/2400
2019-09-09T19:14:20.2953363Z ............................................i..i.................iiii............................... 500/2400
2019-09-09T19:14:42.1157626Z .................................................................................................... 700/2400
2019-09-09T19:14:53.2532198Z .................................................................................................... 800/2400
2019-09-09T19:15:04.3287627Z .................................................................................................... 900/2400
2019-09-09T19:15:15.4414457Z .................................................................................................... 1000/2400
---
2019-09-09T19:19:53.4418155Z 
2019-09-09T19:19:53.4419192Z running 991 tests
2019-09-09T19:20:16.3431270Z i................................................................................................... 100/991
2019-09-09T19:20:28.7683202Z .................................................................................................... 200/991
2019-09-09T19:20:37.7338084Z .................iii......i......i...i......i....................................................... 300/991
2019-09-09T19:20:44.0808356Z .................................................................................................... 400/991
2019-09-09T19:20:52.5604745Z ..................................i..i.................................ii........................... 500/991
2019-09-09T19:21:08.7535460Z .................................................................................................... 700/991
2019-09-09T19:21:08.7535460Z .................................................................................................... 700/991
2019-09-09T19:21:17.6286278Z .................iiii............................................................................... 800/991
2019-09-09T19:21:33.7469739Z .................................................................................................... 900/991
2019-09-09T19:21:41.9681092Z .......................................iiii................................................
2019-09-09T19:21:41.9683517Z 
2019-09-09T19:21:41.9791196Z  finished in 217.584
2019-09-09T19:21:41.9810921Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T19:21:42.3224179Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-09-09T19:25:08.0923015Z     Finished release [optimized] target(s) in 0.17s
2019-09-09T19:25:08.0924294Z  finished in 0.180
2019-09-09T19:25:08.0924829Z Testing serialize stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-09T19:25:08.0925492Z    Compiling serialize v0.0.0 (/checkout/src/libserialize)
2019-09-09T19:25:08.6566532Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6571836Z    --> src/libserialize/tests/json.rs:852:27
2019-09-09T19:25:08.6579632Z 852 |     use std::collections::HashMap;
2019-09-09T19:25:08.6579632Z 852 |     use std::collections::HashMap;
2019-09-09T19:25:08.6587848Z     |                           ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6596301Z     |
2019-09-09T19:25:08.6604298Z     = note: `-D rustc::default-hash-types` implied by `-D warnings`
2019-09-09T19:25:08.6610399Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6617134Z 
2019-09-09T19:25:08.6623942Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6631254Z    --> src/libserialize/tests/json.rs:853:17
2019-09-09T19:25:08.6638817Z     |
2019-09-09T19:25:08.6661977Z 853 |     let mut hm: HashMap<usize, bool> = HashMap::new();
2019-09-09T19:25:08.6663307Z     |                 ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6681563Z     |
2019-09-09T19:25:08.6681919Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6681964Z 
2019-09-09T19:25:08.6682236Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6682525Z    --> src/libserialize/tests/json.rs:853:40
2019-09-09T19:25:08.6682741Z     |
2019-09-09T19:25:08.6683053Z 853 |     let mut hm: HashMap<usize, bool> = HashMap::new();
2019-09-09T19:25:08.6683427Z     |                                        ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6683683Z     |
2019-09-09T19:25:08.6684154Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6684194Z 
2019-09-09T19:25:08.6684453Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6684709Z    --> src/libserialize/tests/json.rs:867:27
2019-09-09T19:25:08.6685201Z 867 |     use std::collections::HashMap;
2019-09-09T19:25:08.6685201Z 867 |     use std::collections::HashMap;
2019-09-09T19:25:08.6686189Z     |                           ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6686452Z     |
2019-09-09T19:25:08.6687021Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6687062Z 
2019-09-09T19:25:08.6687348Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6687612Z    --> src/libserialize/tests/json.rs:868:17
2019-09-09T19:25:08.6687825Z     |
2019-09-09T19:25:08.6688135Z 868 |     let mut hm: HashMap<usize, bool> = HashMap::new();
2019-09-09T19:25:08.6688460Z     |                 ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6688683Z     |
2019-09-09T19:25:08.6689167Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6689212Z 
2019-09-09T19:25:08.6689462Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6689721Z    --> src/libserialize/tests/json.rs:868:40
2019-09-09T19:25:08.6690137Z     |
2019-09-09T19:25:08.6690430Z 868 |     let mut hm: HashMap<usize, bool> = HashMap::new();
2019-09-09T19:25:08.6690789Z     |                                        ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6691014Z     |
2019-09-09T19:25:08.6691401Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6691468Z 
2019-09-09T19:25:08.6691759Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6692038Z    --> src/libserialize/tests/json.rs:933:27
2019-09-09T19:25:08.6692544Z 933 |     use std::collections::HashMap;
2019-09-09T19:25:08.6692544Z 933 |     use std::collections::HashMap;
2019-09-09T19:25:08.6692871Z     |                           ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6693103Z     |
2019-09-09T19:25:08.6693398Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6693437Z 
2019-09-09T19:25:08.6693709Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6693995Z    --> src/libserialize/tests/json.rs:940:19
2019-09-09T19:25:08.6694491Z 940 |     let mut map = HashMap::new();
2019-09-09T19:25:08.6694491Z 940 |     let mut map = HashMap::new();
2019-09-09T19:25:08.6694833Z     |                   ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6695056Z     |
2019-09-09T19:25:08.6695705Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6695750Z 
2019-09-09T19:25:08.6696050Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6696313Z    --> src/libserialize/tests/json.rs:944:18
2019-09-09T19:25:08.6696557Z     |
2019-09-09T19:25:08.6696878Z 944 |     let decoded: HashMap<Enum, _> = json::decode(&result).unwrap();
2019-09-09T19:25:08.6697338Z     |                  ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6697580Z     |
2019-09-09T19:25:08.6697876Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6697916Z 
2019-09-09T19:25:08.6698198Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6698459Z    --> src/libserialize/tests/json.rs:950:27
2019-09-09T19:25:08.6699107Z 950 |     use std::collections::HashMap;
2019-09-09T19:25:08.6699107Z 950 |     use std::collections::HashMap;
2019-09-09T19:25:08.6699420Z     |                           ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6699635Z     |
2019-09-09T19:25:08.6700289Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6700337Z 
2019-09-09T19:25:08.6700811Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6701281Z    --> src/libserialize/tests/json.rs:957:14
2019-09-09T19:25:08.6701493Z     |
2019-09-09T19:25:08.6701796Z 957 |     let _hm: HashMap<usize, bool> = Decodable::decode(&mut decoder).unwrap();
2019-09-09T19:25:08.6702415Z     |              ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6702654Z     |
2019-09-09T19:25:08.6702931Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6702992Z 
2019-09-09T19:25:08.6703243Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6703484Z    --> src/libserialize/tests/json.rs:962:27
2019-09-09T19:25:08.6703954Z 962 |     use std::collections::HashMap;
2019-09-09T19:25:08.6703954Z 962 |     use std::collections::HashMap;
2019-09-09T19:25:08.6704255Z     |                           ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6704491Z     |
2019-09-09T19:25:08.6704776Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6704814Z 
2019-09-09T19:25:08.6705229Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6705900Z    --> src/libserialize/tests/json.rs:969:24
2019-09-09T19:25:08.6706124Z     |
2019-09-09T19:25:08.6706455Z 969 |     let result: Result<HashMap<usize, bool>, DecoderError> = Decodable::decode(&mut decoder);
2019-09-09T19:25:08.6706807Z     |                        ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6707025Z     |
2019-09-09T19:25:08.6707351Z     = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6707402Z 
2019-09-09T19:25:08.6707671Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6708079Z     --> src/libserialize/tests/json.rs:1216:28
2019-09-09T19:25:08.6708315Z      |
2019-09-09T19:25:08.6708601Z 1216 |     use std::collections::{HashMap,BTreeMap};
2019-09-09T19:25:08.6709096Z      |                            ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6709331Z      |
2019-09-09T19:25:08.6709649Z      = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6709687Z 
2019-09-09T19:25:08.6709971Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6710231Z     --> src/libserialize/tests/json.rs:1259:24
2019-09-09T19:25:08.6710734Z 1259 |     let mut hash_map = HashMap::new();
2019-09-09T19:25:08.6710734Z 1259 |     let mut hash_map = HashMap::new();
2019-09-09T19:25:08.6711050Z      |                        ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6711281Z      |
2019-09-09T19:25:08.6711585Z      = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6711623Z 
2019-09-09T19:25:08.6711879Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6712149Z     --> src/libserialize/tests/json.rs:1270:27
2019-09-09T19:25:08.6712732Z 1270 |     use std::collections::HashMap;
2019-09-09T19:25:08.6712732Z 1270 |     use std::collections::HashMap;
2019-09-09T19:25:08.6713077Z      |                           ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6713294Z      |
2019-09-09T19:25:08.6713578Z      = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6713633Z 
2019-09-09T19:25:08.6713889Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6714143Z     --> src/libserialize/tests/json.rs:1273:17
2019-09-09T19:25:08.6714366Z      |
2019-09-09T19:25:08.6714673Z 1273 |     let mut hm: HashMap<ArbitraryType, bool> = HashMap::new();
2019-09-09T19:25:08.6714989Z      |                 ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6715227Z      |
2019-09-09T19:25:08.6715882Z      = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:08.6715925Z 
2019-09-09T19:25:08.6783974Z error: Prefer FxHashMap over HashMap, it has better performance
2019-09-09T19:25:08.6784313Z     --> src/libserialize/tests/json.rs:1273:48
2019-09-09T19:25:08.6784532Z      |
2019-09-09T19:25:08.6784820Z 1273 |     let mut hm: HashMap<ArbitraryType, bool> = HashMap::new();
2019-09-09T19:25:08.6785185Z      |                                                ^^^^^^^ help: use: `FxHashMap`
2019-09-09T19:25:08.6785837Z      |
2019-09-09T19:25:08.6786386Z      = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary
2019-09-09T19:25:09.3143256Z error: aborting due to 18 previous errors
2019-09-09T19:25:09.3147980Z 
2019-09-09T19:25:09.3326234Z error: Could not compile `serialize`.
2019-09-09T19:25:09.3337784Z warning: build failed, waiting for other jobs to finish...
2019-09-09T19:25:09.3337784Z warning: build failed, waiting for other jobs to finish...
2019-09-09T19:25:11.7462527Z error: build failed
2019-09-09T19:25:11.7477524Z 
2019-09-09T19:25:11.7477654Z 
2019-09-09T19:25:11.7478538Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "-p" "serialize" "--" "--quiet"
2019-09-09T19:25:11.7478677Z 
2019-09-09T19:25:11.7478732Z 
2019-09-09T19:25:11.7490262Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-09-09T19:25:11.7490345Z Build completed unsuccessfully in 1:39:08
2019-09-09T19:25:11.7490345Z Build completed unsuccessfully in 1:39:08
2019-09-09T19:25:11.7550341Z == clock drift check ==
2019-09-09T19:25:11.7573045Z   local time: Mon Sep  9 19:25:11 UTC 2019
2019-09-09T19:25:11.9194760Z   network time: Mon, 09 Sep 2019 19:25:11 GMT
2019-09-09T19:25:11.9194899Z == end clock drift check ==
2019-09-09T19:25:12.5137841Z ##[error]Bash exited with code '1'.
2019-09-09T19:25:12.5181123Z ##[section]Starting: Checkout
2019-09-09T19:25:12.5183098Z ==============================================================================
2019-09-09T19:25:12.5183175Z Task         : Get sources
2019-09-09T19:25:12.5183222Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

src/bootstrap/builder.rs Show resolved Hide resolved
src/bootstrap/builder.rs Outdated Show resolved Hide resolved
src/bootstrap/builder.rs Outdated Show resolved Hide resolved
src/bootstrap/builder.rs Outdated Show resolved Hide resolved
src/bootstrap/builder.rs Outdated Show resolved Hide resolved
src/bootstrap/builder.rs Show resolved Hide resolved

@alexcrichton alexcrichton force-pushed the alexcrichton:cleanup-shim branch from 72a79a0 to 674a076 Sep 10, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Sep 11, 2019

The job LinuxTools of your PR failed (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-09-11T15:07:37.3421778Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-11T15:07:37.3601101Z ##[command]git config gc.auto 0
2019-09-11T15:07:37.3681838Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-11T15:07:37.3735069Z ##[command]git config --get-all http.proxy
2019-09-11T15:07:37.3904026Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64316/merge:refs/remotes/pull/64316/merge
---
2019-09-11T15:12:12.3948558Z    Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
2019-09-11T15:12:16.1255542Z error: unused variable: `cmd`
2019-09-11T15:12:16.1257475Z     --> src/bootstrap/builder.rs:1340:26
2019-09-11T15:12:16.1257976Z      |
2019-09-11T15:12:16.1258562Z 1340 |     fn new(target: &str, cmd: &mut Command) -> Rustflags {
2019-09-11T15:12:16.1258866Z      |                          ^^^ help: consider prefixing with an underscore: `_cmd`
2019-09-11T15:12:16.1259630Z      = note: `-D unused-variables` implied by `-D warnings`
2019-09-11T15:12:16.1259836Z 
2019-09-11T15:12:18.0219761Z error: aborting due to previous error
2019-09-11T15:12:18.0220873Z 
---
2019-09-11T15:12:19.3404833Z    Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
2019-09-11T15:12:23.0370615Z error: unused variable: `cmd`
2019-09-11T15:12:23.0376812Z     --> src/bootstrap/builder.rs:1340:26
2019-09-11T15:12:23.0376901Z      |
2019-09-11T15:12:23.0377597Z 1340 |     fn new(target: &str, cmd: &mut Command) -> Rustflags {
2019-09-11T15:12:23.0377691Z      |                          ^^^ help: consider prefixing with an underscore: `_cmd`
2019-09-11T15:12:23.0378149Z      = note: `-D unused-variables` implied by `-D warnings`
2019-09-11T15:12:23.0378198Z 
2019-09-11T15:12:24.9643714Z error: aborting due to previous error
2019-09-11T15:12:24.9644667Z 
---
2019-09-11T15:12:27.2639409Z    Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
2019-09-11T15:12:30.9321346Z error: unused variable: `cmd`
2019-09-11T15:12:30.9323357Z     --> src/bootstrap/builder.rs:1340:26
2019-09-11T15:12:30.9323816Z      |
2019-09-11T15:12:30.9324440Z 1340 |     fn new(target: &str, cmd: &mut Command) -> Rustflags {
2019-09-11T15:12:30.9324819Z      |                          ^^^ help: consider prefixing with an underscore: `_cmd`
2019-09-11T15:12:30.9325685Z      = note: `-D unused-variables` implied by `-D warnings`
2019-09-11T15:12:30.9326007Z 
2019-09-11T15:12:32.8373699Z error: aborting due to previous error
2019-09-11T15:12:32.8374718Z 
---
2019-09-11T15:12:36.1581899Z    Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
2019-09-11T15:12:39.8758658Z error: unused variable: `cmd`
2019-09-11T15:12:39.8760393Z     --> src/bootstrap/builder.rs:1340:26
2019-09-11T15:12:39.8760635Z      |
2019-09-11T15:12:39.8761098Z 1340 |     fn new(target: &str, cmd: &mut Command) -> Rustflags {
2019-09-11T15:12:39.8761322Z      |                          ^^^ help: consider prefixing with an underscore: `_cmd`
2019-09-11T15:12:39.8761952Z      = note: `-D unused-variables` implied by `-D warnings`
2019-09-11T15:12:39.8762131Z 
2019-09-11T15:12:41.8285026Z error: aborting due to previous error
2019-09-11T15:12:41.8286202Z 
---
2019-09-11T15:12:46.1340626Z    Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
2019-09-11T15:12:49.7995492Z error: unused variable: `cmd`
2019-09-11T15:12:49.7997590Z     --> src/bootstrap/builder.rs:1340:26
2019-09-11T15:12:49.7998157Z      |
2019-09-11T15:12:49.7998860Z 1340 |     fn new(target: &str, cmd: &mut Command) -> Rustflags {
2019-09-11T15:12:49.7999553Z      |                          ^^^ help: consider prefixing with an underscore: `_cmd`
2019-09-11T15:12:49.8000546Z      = note: `-D unused-variables` implied by `-D warnings`
2019-09-11T15:12:49.8000903Z 
2019-09-11T15:12:51.7253583Z error: aborting due to previous error
2019-09-11T15:12:51.7254707Z 
---
2019-09-11T15:12:51.7861470Z == clock drift check ==
2019-09-11T15:12:51.7874594Z   local time: Wed Sep 11 15:12:51 UTC 2019
2019-09-11T15:12:51.9366232Z   network time: Wed, 11 Sep 2019 15:12:51 GMT
2019-09-11T15:12:51.9370744Z == end clock drift check ==
2019-09-11T15:12:52.8137306Z ##[error]Bash exited with code '1'.
2019-09-11T15:12:52.8169300Z ##[section]Starting: Checkout
2019-09-11T15:12:52.8171441Z ==============================================================================
2019-09-11T15:12:52.8171507Z Task         : Get sources
2019-09-11T15:12:52.8171579Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@alexcrichton alexcrichton force-pushed the alexcrichton:cleanup-shim branch from afd1bc3 to e2bd57d Sep 11, 2019

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

@alexcrichton I think this is ready to go now, unless I'm missing something? I've been waiting for a flip to S-waiting-on-review to do another pass if you think it's warranted.

@alexcrichton

This comment has been minimized.

Copy link
Member Author

commented Sep 16, 2019

@Mark-Simulacrum sorry, yes, this should be good to go

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 16, 2019

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

@@ -1,3 +1,5 @@
#![allow(rustc::default_hash_types)]

This comment has been minimized.

Copy link
@Mark-Simulacrum

Mark-Simulacrum Sep 16, 2019

Member

Could we switch these to rustc::internal like we do for libserialize/lib.rs?

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

Okay, r=me with last nit fixed (and looks like a rebase)

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member

commented Sep 16, 2019

Let's also do

@bors rollup=never

bootstrap: Add a helper for managing RUSTFLAGS
Most of `bootstrap/bin/rustc.rs` doesn't need to exist with the advent
of `RUSTFLAGS` (yes this is super old) so this starts by refactoring a
bit to make it easier locally in the `Builder::cargo` method to append
to `RUSTFLAGS` that gets down to rustc.
bootstrap: Delete handling of `RUSTC_METADATA_SUFFIX`
This is already handled by `__CARGO_DEFAULT_LIB_METADATA` so there's no
need to doubly do it.
bootstrap: Move `RUSTC_BREAK_ON_ICE` out of shim
This is always set, so let's just always set it elsewhere to reduce the
need for our `rustc.rs` shim.
bootstrap: Move `-Zexternal-macro-backtrace` to builder
No need for this to be in `rustc.rs`
alexcrichton added 9 commits Sep 9, 2019
Move handling of `RUSTC_PARALLEL_COMPILER` to `compile.rs`
No longer needs to live in `rustc.rs`
Move `--cfg bootstrap` out of `rustc.rs`
Instead let's do this via `RUSTFLAGS` in `builder.rs`. Currently
requires a submodule update of `stdarch` to fix a problem with previous
compilers.
Move handling of `-Cprefer-dynamic` into `builder.rs`
This logic is *super* old and can be tweaked and moved into `builder.rs`
Fix compiling libserialize tests
They've got new warnings turned on so they need more `#![allow]`
No need to remove target-specific RUSTFLAGS
Turns out Cargo favors RUSTFLAGS!

@alexcrichton alexcrichton force-pushed the alexcrichton:cleanup-shim branch from e2bd57d to 7497230 Sep 16, 2019

@alexcrichton

This comment has been minimized.

Copy link
Member Author

commented Sep 16, 2019

@bors: r=Mark-Simulacrum

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 16, 2019

📌 Commit 7497230 has been approved by Mark-Simulacrum

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 17, 2019

⌛️ Testing commit 7497230 with merge fe85b50...

bors added a commit that referenced this pull request Sep 17, 2019
Auto merge of #64316 - alexcrichton:cleanup-shim, r=Mark-Simulacrum
Delete most of `src/bootstrap/bin/rustc.rs`

This commit is an attempt at deleting as much of the `rustc.rs` shim that we have in rustbuild as possible.  This shim predates `RUSTFLAGS` and is as old as rustbuild itself. While useful for quick hacks, it subverts Cargo's knowledge of `rustc`, makes it more difficult to build crates out of rustbuild, and is generally a hazard/code smell due to its architecture.

Additionally since the inception of this script we've added a number of features to Cargo such as profile overrides and `RUSTFLAGS`. This commit attempts to use these features of Cargo as much as possible to delete almost all of `src/bootstrap/bin/rustc.rs`. It's hoped that all new configuration for the Rust compiler can be codified in rustbuild rather than in this shim, allowing Cargo to have more knowledge about what's going on and making it a bit easier to reproduce builds outside of Cargo itself.

This was primarily motivated by some recent work on std-aware Cargo, and is also generally a cleanup of the script itself. This internally resulted in a number of refactorings of rustbuild itself, and the commits should be readable one-at-a-time instead of having to digest them all at once.
@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 17, 2019

💔 Test failed - checks-azure

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Sep 17, 2019

The job dist-i586-gnu-i586-i686-musl of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-09-17T07:59:33.3300986Z    Compiling cfg-if v0.1.8
2019-09-17T07:59:33.3722261Z [RUSTC-TIMING] cfg_if test:false 0.037
2019-09-17T07:59:33.3771574Z    Compiling alloc v0.0.0 (/checkout/src/liballoc)
2019-09-17T07:59:37.4609660Z [RUSTC-TIMING] alloc test:false 4.080
2019-09-17T07:59:37.5414774Z error: duplicate lang item in crate `core`: `bool`.
2019-09-17T07:59:37.5415698Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5415765Z 
2019-09-17T07:59:37.5415765Z 
2019-09-17T07:59:37.5429636Z error: duplicate lang item in crate `core`: `char`.
2019-09-17T07:59:37.5430549Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5430672Z 
2019-09-17T07:59:37.5430672Z 
2019-09-17T07:59:37.5444602Z error: duplicate lang item in crate `core`: `str`.
2019-09-17T07:59:37.5445854Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5445938Z 
2019-09-17T07:59:37.5445938Z 
2019-09-17T07:59:37.5460607Z error: duplicate lang item in crate `core`: `slice`.
2019-09-17T07:59:37.5462292Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5462396Z 
2019-09-17T07:59:37.5462396Z 
2019-09-17T07:59:37.5477652Z error: duplicate lang item in crate `core`: `slice_u8`.
2019-09-17T07:59:37.5478420Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5478662Z 
2019-09-17T07:59:37.5478662Z 
2019-09-17T07:59:37.5492937Z error: duplicate lang item in crate `core`: `const_ptr`.
2019-09-17T07:59:37.5493574Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5493657Z 
2019-09-17T07:59:37.5493657Z 
2019-09-17T07:59:37.5507900Z error: duplicate lang item in crate `core`: `mut_ptr`.
2019-09-17T07:59:37.5508546Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5508606Z 
2019-09-17T07:59:37.5508606Z 
2019-09-17T07:59:37.5522962Z error: duplicate lang item in crate `core`: `i8`.
2019-09-17T07:59:37.5524128Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5524211Z 
2019-09-17T07:59:37.5524211Z 
2019-09-17T07:59:37.5537512Z error: duplicate lang item in crate `core`: `i16`.
2019-09-17T07:59:37.5538105Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5538181Z 
2019-09-17T07:59:37.5538181Z 
2019-09-17T07:59:37.5552151Z error: duplicate lang item in crate `core`: `i32`.
2019-09-17T07:59:37.5552780Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5552846Z 
2019-09-17T07:59:37.5552846Z 
2019-09-17T07:59:37.5566081Z error: duplicate lang item in crate `core`: `i64`.
2019-09-17T07:59:37.5566794Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5566867Z 
2019-09-17T07:59:37.5566867Z 
2019-09-17T07:59:37.5581631Z error: duplicate lang item in crate `core`: `i128`.
2019-09-17T07:59:37.5582260Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5582342Z 
2019-09-17T07:59:37.5582342Z 
2019-09-17T07:59:37.5597450Z error: duplicate lang item in crate `core`: `isize`.
2019-09-17T07:59:37.5598011Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5598069Z 
2019-09-17T07:59:37.5598069Z 
2019-09-17T07:59:37.5612446Z error: duplicate lang item in crate `core`: `u8`.
2019-09-17T07:59:37.5613077Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5613142Z 
2019-09-17T07:59:37.5613142Z 
2019-09-17T07:59:37.5628042Z error: duplicate lang item in crate `core`: `u16`.
2019-09-17T07:59:37.5628663Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5628725Z 
2019-09-17T07:59:37.5628725Z 
2019-09-17T07:59:37.5642824Z error: duplicate lang item in crate `core`: `u32`.
2019-09-17T07:59:37.5643461Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5643546Z 
2019-09-17T07:59:37.5643546Z 
2019-09-17T07:59:37.5656967Z error: duplicate lang item in crate `core`: `u64`.
2019-09-17T07:59:37.5657615Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5657697Z 
2019-09-17T07:59:37.5657697Z 
2019-09-17T07:59:37.5671385Z error: duplicate lang item in crate `core`: `u128`.
2019-09-17T07:59:37.5672021Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5672105Z 
2019-09-17T07:59:37.5672105Z 
2019-09-17T07:59:37.5685952Z error: duplicate lang item in crate `core`: `usize`.
2019-09-17T07:59:37.5686556Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5686634Z 
2019-09-17T07:59:37.5686634Z 
2019-09-17T07:59:37.5771601Z error: duplicate lang item in crate `core`: `f32`.
2019-09-17T07:59:37.5772547Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5772617Z 
2019-09-17T07:59:37.5772617Z 
2019-09-17T07:59:37.5773147Z error: duplicate lang item in crate `core`: `f64`.
2019-09-17T07:59:37.5773823Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5773888Z 
2019-09-17T07:59:37.5773888Z 
2019-09-17T07:59:37.5774177Z error: duplicate lang item in crate `core`: `sized`.
2019-09-17T07:59:37.5774762Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5774843Z 
2019-09-17T07:59:37.5774843Z 
2019-09-17T07:59:37.5775130Z error: duplicate lang item in crate `core`: `unsize`.
2019-09-17T07:59:37.5775697Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5775776Z 
2019-09-17T07:59:37.5775776Z 
2019-09-17T07:59:37.5776063Z error: duplicate lang item in crate `core`: `copy`.
2019-09-17T07:59:37.5776649Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5776710Z 
2019-09-17T07:59:37.5776710Z 
2019-09-17T07:59:37.5777107Z error: duplicate lang item in crate `core`: `clone`.
2019-09-17T07:59:37.5777736Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5777798Z 
2019-09-17T07:59:37.5777798Z 
2019-09-17T07:59:37.5778100Z error: duplicate lang item in crate `core`: `sync`.
2019-09-17T07:59:37.5778663Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5778725Z 
2019-09-17T07:59:37.5778725Z 
2019-09-17T07:59:37.5779061Z error: duplicate lang item in crate `core`: `freeze`.
2019-09-17T07:59:37.5779639Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5779701Z 
2019-09-17T07:59:37.5779701Z 
2019-09-17T07:59:37.5779999Z error: duplicate lang item in crate `core`: `drop`.
2019-09-17T07:59:37.5781330Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5781397Z 
2019-09-17T07:59:37.5781397Z 
2019-09-17T07:59:37.5781703Z error: duplicate lang item in crate `core`: `coerce_unsized`.
2019-09-17T07:59:37.5782291Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5782354Z 
2019-09-17T07:59:37.5782354Z 
2019-09-17T07:59:37.5782654Z error: duplicate lang item in crate `core`: `dispatch_from_dyn`.
2019-09-17T07:59:37.5783237Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5783321Z 
2019-09-17T07:59:37.5783321Z 
2019-09-17T07:59:37.5783612Z error: duplicate lang item in crate `core`: `add`.
2019-09-17T07:59:37.5784177Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5784267Z 
2019-09-17T07:59:37.5784267Z 
2019-09-17T07:59:37.5784639Z error: duplicate lang item in crate `core`: `sub`.
2019-09-17T07:59:37.5786305Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5786378Z 
2019-09-17T07:59:37.5786378Z 
2019-09-17T07:59:37.5786698Z error: duplicate lang item in crate `core`: `mul`.
2019-09-17T07:59:37.5787569Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5787659Z 
2019-09-17T07:59:37.5787659Z 
2019-09-17T07:59:37.5788025Z error: duplicate lang item in crate `core`: `div`.
2019-09-17T07:59:37.5788594Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5788667Z 
2019-09-17T07:59:37.5788667Z 
2019-09-17T07:59:37.5788970Z error: duplicate lang item in crate `core`: `rem`.
2019-09-17T07:59:37.5789536Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5789600Z 
2019-09-17T07:59:37.5789600Z 
2019-09-17T07:59:37.5789915Z error: duplicate lang item in crate `core`: `neg`.
2019-09-17T07:59:37.5790711Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5790781Z 
2019-09-17T07:59:37.5790781Z 
2019-09-17T07:59:37.5791202Z error: duplicate lang item in crate `core`: `not`.
2019-09-17T07:59:37.5791793Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5791865Z 
2019-09-17T07:59:37.5791865Z 
2019-09-17T07:59:37.5792154Z error: duplicate lang item in crate `core`: `bitxor`.
2019-09-17T07:59:37.5792718Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5792799Z 
2019-09-17T07:59:37.5792799Z 
2019-09-17T07:59:37.5793089Z error: duplicate lang item in crate `core`: `bitand`.
2019-09-17T07:59:37.5793656Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5793735Z 
2019-09-17T07:59:37.5793735Z 
2019-09-17T07:59:37.5794334Z error: duplicate lang item in crate `core`: `bitor`.
2019-09-17T07:59:37.5795112Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5795172Z 
2019-09-17T07:59:37.5795172Z 
2019-09-17T07:59:37.5795631Z error: duplicate lang item in crate `core`: `shl`.
2019-09-17T07:59:37.5796183Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5796243Z 
2019-09-17T07:59:37.5796243Z 
2019-09-17T07:59:37.5796531Z error: duplicate lang item in crate `core`: `shr`.
2019-09-17T07:59:37.5797248Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5797311Z 
2019-09-17T07:59:37.5797311Z 
2019-09-17T07:59:37.5797626Z error: duplicate lang item in crate `core`: `add_assign`.
2019-09-17T07:59:37.5798200Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5798262Z 
2019-09-17T07:59:37.5798262Z 
2019-09-17T07:59:37.5798567Z error: duplicate lang item in crate `core`: `sub_assign`.
2019-09-17T07:59:37.5799292Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5799360Z 
2019-09-17T07:59:37.5799360Z 
2019-09-17T07:59:37.5799673Z error: duplicate lang item in crate `core`: `mul_assign`.
2019-09-17T07:59:37.5800580Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5800649Z 
2019-09-17T07:59:37.5800649Z 
2019-09-17T07:59:37.5801065Z error: duplicate lang item in crate `core`: `div_assign`.
2019-09-17T07:59:37.5801681Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5801762Z 
2019-09-17T07:59:37.5801762Z 
2019-09-17T07:59:37.5802054Z error: duplicate lang item in crate `core`: `rem_assign`.
2019-09-17T07:59:37.5802635Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5802713Z 
2019-09-17T07:59:37.5802713Z 
2019-09-17T07:59:37.5803010Z error: duplicate lang item in crate `core`: `bitxor_assign`.
2019-09-17T07:59:37.5803732Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5803809Z 
2019-09-17T07:59:37.5803809Z 
2019-09-17T07:59:37.5804106Z error: duplicate lang item in crate `core`: `bitand_assign`.
2019-09-17T07:59:37.5804659Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5804718Z 
2019-09-17T07:59:37.5804718Z 
2019-09-17T07:59:37.5805016Z error: duplicate lang item in crate `core`: `bitor_assign`.
2019-09-17T07:59:37.5805573Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5805632Z 
2019-09-17T07:59:37.5805632Z 
2019-09-17T07:59:37.5806071Z error: duplicate lang item in crate `core`: `shl_assign`.
2019-09-17T07:59:37.5806598Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5806656Z 
2019-09-17T07:59:37.5806656Z 
2019-09-17T07:59:37.5806952Z error: duplicate lang item in crate `core`: `shr_assign`.
2019-09-17T07:59:37.5807732Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5807791Z 
2019-09-17T07:59:37.5807791Z 
2019-09-17T07:59:37.5808082Z error: duplicate lang item in crate `core`: `index`.
2019-09-17T07:59:37.5808756Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5808816Z 
2019-09-17T07:59:37.5808816Z 
2019-09-17T07:59:37.5809095Z error: duplicate lang item in crate `core`: `index_mut`.
2019-09-17T07:59:37.5809812Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5809895Z 
2019-09-17T07:59:37.5809895Z 
2019-09-17T07:59:37.5810190Z error: duplicate lang item in crate `core`: `unsafe_cell`.
2019-09-17T07:59:37.5811240Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5811320Z 
2019-09-17T07:59:37.5811320Z 
2019-09-17T07:59:37.5811608Z error: duplicate lang item in crate `core`: `va_list`.
2019-09-17T07:59:37.5812187Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5812266Z 
2019-09-17T07:59:37.5812266Z 
2019-09-17T07:59:37.5812551Z error: duplicate lang item in crate `core`: `deref`.
2019-09-17T07:59:37.5813112Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5813173Z 
2019-09-17T07:59:37.5813173Z 
2019-09-17T07:59:37.5813482Z error: duplicate lang item in crate `core`: `deref_mut`.
2019-09-17T07:59:37.5814200Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5814264Z 
2019-09-17T07:59:37.5814264Z 
2019-09-17T07:59:37.5814571Z error: duplicate lang item in crate `core`: `receiver`.
2019-09-17T07:59:37.5815150Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5815211Z 
2019-09-17T07:59:37.5815211Z 
2019-09-17T07:59:37.5815509Z error: duplicate lang item in crate `core`: `fn`.
2019-09-17T07:59:37.5816073Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5816136Z 
2019-09-17T07:59:37.5816136Z 
2019-09-17T07:59:37.5816438Z error: duplicate lang item in crate `core`: `fn_mut`.
2019-09-17T07:59:37.5817011Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5817074Z 
2019-09-17T07:59:37.5817074Z 
2019-09-17T07:59:37.5817366Z error: duplicate lang item in crate `core`: `fn_once`.
2019-09-17T07:59:37.5817933Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5818024Z 
2019-09-17T07:59:37.5818024Z 
2019-09-17T07:59:37.5818325Z error: duplicate lang item in crate `core`: `future_trait`.
2019-09-17T07:59:37.5818895Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5818973Z 
2019-09-17T07:59:37.5818973Z 
2019-09-17T07:59:37.5819270Z error: duplicate lang item in crate `core`: `generator_state`.
2019-09-17T07:59:37.5819846Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5819924Z 
2019-09-17T07:59:37.5819924Z 
2019-09-17T07:59:37.5820217Z error: duplicate lang item in crate `core`: `generator`.
2019-09-17T07:59:37.5824616Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5824883Z 
2019-09-17T07:59:37.5824883Z 
2019-09-17T07:59:37.5825239Z error: duplicate lang item in crate `core`: `unpin`.
2019-09-17T07:59:37.5825819Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5825881Z 
2019-09-17T07:59:37.5825881Z 
2019-09-17T07:59:37.5826181Z error: duplicate lang item in crate `core`: `pin`.
2019-09-17T07:59:37.5826757Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5826819Z 
2019-09-17T07:59:37.5826819Z 
2019-09-17T07:59:37.5827118Z error: duplicate lang item in crate `core`: `eq`.
2019-09-17T07:59:37.5827892Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5827970Z 
2019-09-17T07:59:37.5827970Z 
2019-09-17T07:59:37.5828283Z error: duplicate lang item in crate `core`: `partial_ord`.
2019-09-17T07:59:37.5828848Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5828910Z 
2019-09-17T07:59:37.5828910Z 
2019-09-17T07:59:37.5829191Z error: duplicate lang item in crate `core`: `ord`.
2019-09-17T07:59:37.5829758Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5829957Z 
2019-09-17T07:59:37.5829957Z 
2019-09-17T07:59:37.5864473Z error: duplicate lang item in crate `core`: `panic`.
2019-09-17T07:59:37.5865099Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5865181Z 
2019-09-17T07:59:37.5865181Z 
2019-09-17T07:59:37.5865502Z error: duplicate lang item in crate `core`: `panic_bounds_check`.
2019-09-17T07:59:37.5866058Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5866135Z 
2019-09-17T07:59:37.5866135Z 
2019-09-17T07:59:37.5866415Z error: duplicate lang item in crate `core`: `panic_info`.
2019-09-17T07:59:37.5866961Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5867036Z 
2019-09-17T07:59:37.5867036Z 
2019-09-17T07:59:37.5879186Z error: duplicate lang item in crate `core`: `drop_in_place`.
2019-09-17T07:59:37.5879802Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5879865Z 
2019-09-17T07:59:37.5879865Z 
2019-09-17T07:59:37.5894114Z error: duplicate lang item in crate `core`: `alloc_layout`.
2019-09-17T07:59:37.5894750Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5894815Z 
2019-09-17T07:59:37.5894815Z 
2019-09-17T07:59:37.5908453Z error: duplicate lang item in crate `core`: `phantom_data`.
2019-09-17T07:59:37.5909088Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5909152Z 
2019-09-17T07:59:37.5909152Z 
2019-09-17T07:59:37.5925122Z error: duplicate lang item in crate `core`: `manually_drop`.
2019-09-17T07:59:37.5925759Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5925825Z 
2019-09-17T07:59:37.5925825Z 
2019-09-17T07:59:37.5973112Z error: duplicate lang item in crate `core`: `maybe_uninit`.
2019-09-17T07:59:37.5974181Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5974247Z 
2019-09-17T07:59:37.5974247Z 
2019-09-17T07:59:37.5991250Z error: duplicate lang item in crate `core`: `align_offset`.
2019-09-17T07:59:37.5991892Z   = note: first defined in crate `core`.
2019-09-17T07:59:37.5991957Z 
2019-09-17T07:59:37.5991957Z 
2019-09-17T07:59:37.6501772Z error[E0277]: the size for values of type `core::num::NonZeroU32` cannot be known at compilation time
2019-09-17T07:59:37.6502303Z    --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/error.rs:123:6
2019-09-17T07:59:37.6502617Z     |
2019-09-17T07:59:37.6502962Z 123 | impl From<NonZeroU32> for Error {
2019-09-17T07:59:37.6503386Z     |      ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6503676Z     |
2019-09-17T07:59:37.6504168Z     = help: the trait `core::marker::Sized` is not implemented for `core::num::NonZeroU32`
2019-09-17T07:59:37.6504792Z     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6562345Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6562828Z    --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/error.rs:123:6
2019-09-17T07:59:37.6563150Z     |
2019-09-17T07:59:37.6563150Z     |
2019-09-17T07:59:37.6563501Z 123 | impl From<NonZeroU32> for Error {
2019-09-17T07:59:37.6563902Z     |      ^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6564355Z     |
2019-09-17T07:59:37.6564860Z     = help: the trait `core::marker::Sized` is not implemented for `error::Error`
2019-09-17T07:59:37.6565307Z     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6680192Z error[E0277]: the size for values of type `&'static str` cannot be known at compilation time
2019-09-17T07:59:37.6682093Z    --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/error.rs:149:1
2019-09-17T07:59:37.6682413Z     |
2019-09-17T07:59:37.6682413Z     |
2019-09-17T07:59:37.6682847Z 149 | / fn internal_desc(error: Error) -> Option<&'static str> {
2019-09-17T07:59:37.6683234Z 150 | |     match error {
2019-09-17T07:59:37.6683673Z 151 | |         UNSUPPORTED => Some("getrandom: this target is not supported"),
2019-09-17T07:59:37.6684141Z 152 | |         ERRNO_NOT_POSITIVE => Some("errno: did not return a positive value"),
2019-09-17T07:59:37.6685114Z 163 | |     }
2019-09-17T07:59:37.6685469Z 164 | | }
2019-09-17T07:59:37.6685469Z 164 | | }
2019-09-17T07:59:37.6685993Z     | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6686272Z     |
2019-09-17T07:59:37.6686771Z     = help: the trait `core::marker::Sized` is not implemented for `&'static str`
2019-09-17T07:59:37.6687209Z     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6687556Z     = note: required by `core::option::Option`
2019-09-17T07:59:37.6687949Z error[E0277]: the size for values of type `()` cannot be known at compilation time
2019-09-17T07:59:37.6688328Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/use_file.rs:25:1
2019-09-17T07:59:37.6688599Z    |
2019-09-17T07:59:37.6688599Z    |
2019-09-17T07:59:37.6688961Z 25 | / pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
2019-09-17T07:59:37.6689448Z 26 | |     static FD: LazyFd = LazyFd::new();
2019-09-17T07:59:37.6689868Z 27 | |     let fd = FD.init(init_file).ok_or_else(last_os_error)?;
2019-09-17T07:59:37.6690665Z 28 | |     let read = |buf: &mut [u8]| unsafe { libc::read(fd, buf.as_mut_ptr() as *mut _, buf.len()) };
2019-09-17T07:59:37.6691411Z 38 | |     Ok(())
2019-09-17T07:59:37.6691766Z 39 | | }
2019-09-17T07:59:37.6691766Z 39 | | }
2019-09-17T07:59:37.6692147Z    | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6692777Z    = help: the trait `core::marker::Sized` is not implemented for `()`
2019-09-17T07:59:37.6692777Z    = help: the trait `core::marker::Sized` is not implemented for `()`
2019-09-17T07:59:37.6693247Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6693630Z    = note: required by `core::result::Result`
2019-09-17T07:59:37.6694179Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6694556Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/use_file.rs:25:1
2019-09-17T07:59:37.6694863Z    |
2019-09-17T07:59:37.6694863Z    |
2019-09-17T07:59:37.6695269Z 25 | / pub fn getrandom_inner(dest: &mut [u8]) -> Result<(), Error> {
2019-09-17T07:59:37.6695686Z 26 | |     static FD: LazyFd = LazyFd::new();
2019-09-17T07:59:37.6696096Z 27 | |     let fd = FD.init(init_file).ok_or_else(last_os_error)?;
2019-09-17T07:59:37.6696734Z 28 | |     let read = |buf: &mut [u8]| unsafe { libc::read(fd, buf.as_mut_ptr() as *mut _, buf.len()) };
2019-09-17T07:59:37.6697418Z 38 | |     Ok(())
2019-09-17T07:59:37.6697786Z 39 | | }
2019-09-17T07:59:37.6697786Z 39 | | }
2019-09-17T07:59:37.6698169Z    | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6698456Z    |
2019-09-17T07:59:37.6698808Z    = help: the trait `core::marker::Sized` is not implemented for `error::Error`
2019-09-17T07:59:37.6699273Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6699627Z    = note: required by `core::result::Result`
2019-09-17T07:59:37.6714818Z error[E0277]: the size for values of type `()` cannot be known at compilation time
2019-09-17T07:59:37.6715423Z    --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/lib.rs:268:1
2019-09-17T07:59:37.6715761Z     |
2019-09-17T07:59:37.6715761Z     |
2019-09-17T07:59:37.6716135Z 268 | / pub fn getrandom(dest: &mut [u8]) -> Result<(), error::Error> {
2019-09-17T07:59:37.6716522Z 269 | |     imp::getrandom_inner(dest)
2019-09-17T07:59:37.6716842Z 270 | | }
2019-09-17T07:59:37.6717205Z     | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6717785Z     = help: the trait `core::marker::Sized` is not implemented for `()`
2019-09-17T07:59:37.6717785Z     = help: the trait `core::marker::Sized` is not implemented for `()`
2019-09-17T07:59:37.6718223Z     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6718570Z     = note: required by `core::result::Result`
2019-09-17T07:59:37.6718980Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6719349Z    --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/lib.rs:268:1
2019-09-17T07:59:37.6719602Z     |
2019-09-17T07:59:37.6719602Z     |
2019-09-17T07:59:37.6719977Z 268 | / pub fn getrandom(dest: &mut [u8]) -> Result<(), error::Error> {
2019-09-17T07:59:37.6720751Z 269 | |     imp::getrandom_inner(dest)
2019-09-17T07:59:37.6721160Z 270 | | }
2019-09-17T07:59:37.6721533Z     | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6721985Z     |
2019-09-17T07:59:37.6722337Z     = help: the trait `core::marker::Sized` is not implemented for `error::Error`
2019-09-17T07:59:37.6722810Z     = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6723231Z     = note: required by `core::result::Result`
2019-09-17T07:59:37.6723687Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6724250Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/error.rs:19:16
2019-09-17T07:59:37.6724558Z    |
2019-09-17T07:59:37.6724558Z    |
2019-09-17T07:59:37.6724871Z 19 | #[derive(Copy, Clone, Eq, PartialEq)]
2019-09-17T07:59:37.6725490Z    |                |
2019-09-17T07:59:37.6725831Z    |                doesn't have a size known at compile-time
2019-09-17T07:59:37.6726151Z    |                in this macro invocation
2019-09-17T07:59:37.6726412Z    | 
2019-09-17T07:59:37.6726412Z    | 
2019-09-17T07:59:37.6726771Z   ::: <::core::clone::Clone macros>:1:1
2019-09-17T07:59:37.6727066Z    |
2019-09-17T07:59:37.6727349Z 1  | ($ item : item) => { }
2019-09-17T07:59:37.6727742Z    | ---------------------- in this expansion of `#[derive(Clone)]`
2019-09-17T07:59:37.6728024Z    |
2019-09-17T07:59:37.6728353Z    = help: the trait `core::marker::Sized` is not implemented for `error::Error`
2019-09-17T07:59:37.6728780Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6729208Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6729571Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/error.rs:19:10
2019-09-17T07:59:37.6729836Z    |
2019-09-17T07:59:37.6729836Z    |
2019-09-17T07:59:37.6730133Z 19 | #[derive(Copy, Clone, Eq, PartialEq)]
2019-09-17T07:59:37.6731359Z    |          |
2019-09-17T07:59:37.6731727Z    |          doesn't have a size known at compile-time
2019-09-17T07:59:37.6732065Z    |          in this macro invocation
2019-09-17T07:59:37.6732347Z    | 
2019-09-17T07:59:37.6732347Z    | 
2019-09-17T07:59:37.6732648Z   ::: <::core::marker::Copy macros>:1:1
2019-09-17T07:59:37.6732930Z    |
2019-09-17T07:59:37.6733251Z 1  | ($ item : item) => { }
2019-09-17T07:59:37.6733644Z    | ---------------------- in this expansion of `#[derive(Copy)]`
2019-09-17T07:59:37.6734089Z    |
2019-09-17T07:59:37.6734738Z    = help: the trait `core::marker::Sized` is not implemented for `error::Error`
2019-09-17T07:59:37.6735166Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6762683Z error[E0277]: the size for values of type `&str` cannot be known at compilation time
2019-09-17T07:59:37.6763124Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/error.rs:65:9
2019-09-17T07:59:37.6763434Z    |
2019-09-17T07:59:37.6763434Z    |
2019-09-17T07:59:37.6763850Z 65 | /         fn os_err_desc(errno: i32, buf: &mut [u8]) -> Option<&str> {
2019-09-17T07:59:37.6764291Z 66 | |             let buf_ptr = buf.as_mut_ptr() as *mut libc::c_char;
2019-09-17T07:59:37.6764748Z 67 | |             if unsafe { libc::strerror_r(errno, buf_ptr, buf.len()) } != 0 {
2019-09-17T07:59:37.6765132Z 68 | |                 return None;
2019-09-17T07:59:37.6765447Z ...  |
2019-09-17T07:59:37.6765995Z 74 | |             core::str::from_utf8(&buf[..idx]).ok()
2019-09-17T07:59:37.6766436Z 75 | |         }
2019-09-17T07:59:37.6766836Z    | |_________^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6767121Z    |
2019-09-17T07:59:37.6767478Z    = help: the trait `core::marker::Sized` is not implemented for `&str`
2019-09-17T07:59:37.6767920Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6768300Z    = note: required by `core::option::Option`
2019-09-17T07:59:37.6768719Z error[E0277]: the size for values of type `()` cannot be known at compilation time
2019-09-17T07:59:37.6768719Z error[E0277]: the size for values of type `()` cannot be known at compilation time
2019-09-17T07:59:37.6769100Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/util_libc.rs:40:1
2019-09-17T07:59:37.6769393Z    |
2019-09-17T07:59:37.6769729Z 40 | / pub fn sys_fill_exact(
2019-09-17T07:59:37.6770105Z 41 | |     mut buf: &mut [u8],
2019-09-17T07:59:37.6770725Z 42 | |     sys_fill: impl Fn(&mut [u8]) -> libc::ssize_t,
2019-09-17T07:59:37.6771181Z 43 | | ) -> Result<(), Error> {
2019-09-17T07:59:37.6771828Z 58 | |     Ok(())
2019-09-17T07:59:37.6772174Z 59 | | }
2019-09-17T07:59:37.6772174Z 59 | | }
2019-09-17T07:59:37.6772712Z    | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6773331Z    = help: the trait `core::marker::Sized` is not implemented for `()`
2019-09-17T07:59:37.6773331Z    = help: the trait `core::marker::Sized` is not implemented for `()`
2019-09-17T07:59:37.6773789Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6774168Z    = note: required by `core::result::Result`
2019-09-17T07:59:37.6774590Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6774590Z error[E0277]: the size for values of type `error::Error` cannot be known at compilation time
2019-09-17T07:59:37.6774991Z   --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/util_libc.rs:40:1
2019-09-17T07:59:37.6775267Z    |
2019-09-17T07:59:37.6775627Z 40 | / pub fn sys_fill_exact(
2019-09-17T07:59:37.6776002Z 41 | |     mut buf: &mut [u8],
2019-09-17T07:59:37.6776393Z 42 | |     sys_fill: impl Fn(&mut [u8]) -> libc::ssize_t,
2019-09-17T07:59:37.6776859Z 43 | | ) -> Result<(), Error> {
2019-09-17T07:59:37.6777543Z 58 | |     Ok(())
2019-09-17T07:59:37.6777876Z 59 | | }
2019-09-17T07:59:37.6777876Z 59 | | }
2019-09-17T07:59:37.6778275Z    | |_^ doesn't have a size known at compile-time
2019-09-17T07:59:37.6778540Z    |
2019-09-17T07:59:37.6778913Z    = help: the trait `core::marker::Sized` is not implemented for `error::Error`
2019-09-17T07:59:37.6779371Z    = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
2019-09-17T07:59:37.6779734Z    = note: required by `core::result::Result`
2019-09-17T07:59:37.6809163Z error[E0277]: the size for values of type `i32` cannot be known at compilation time
2019-09-17T07:59:37.6809163Z error[E0277]: the size for values of type `i32` cannot be known at compilation time
2019-09-17T07:59:37.6809620Z    --> /cargo/registry/src/github.com-1ecc6299db9ec823/getrandom-0.1.12/src/util_libc.rs:129:1
2019-09-17T07:59:37.6809918Z     |
2019-09-17T07:59:37.6810340Z 129 | / pub unsafe fn open_readonly(path: &str) -> Option<libc::c_int> {
2019-09-17T07:59:37.6811091Z 130 | |     debug_assert!(path.as_bytes().last() == Some(&0));
2019-09-17T07:59:37.6811551Z 131 | |     let fd = open(path.as_ptr() as *mut _, libc::O_RDONLY | libc::O_CLOEXEC);
2019-09-17T07:59:37.6811948Z 132 | |     if fd < 0 {
2019-09-17T07:59:37.6812598Z 139 | |     Some(fd)

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 17, 2019

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

rustbuild: Pass `-Zsave-analysis` during tests
This is needed to ensure that the crates during a normal build are
shared with the crates during testing, otherwise they'll end up hasing
differently and we'll recompile crates like `core` during tests.
@alexcrichton

This comment has been minimized.

Copy link
Member Author

commented Sep 17, 2019

@bors: r=Mark-Simulacrum

@bors

This comment has been minimized.

Copy link
Contributor

commented Sep 17, 2019

📌 Commit c9e1899 has been approved by Mark-Simulacrum

@mati865

This comment has been minimized.

Copy link
Contributor

commented Sep 17, 2019

@alexcrichton you have a conflict in src/tools/build-manifest/src/main.rs.

@alexcrichton

This comment has been minimized.

Copy link
Member Author

commented Sep 18, 2019

@bors: r-

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.