Skip to content

rustbuild: Fix recompilation of stage0 tools dir #41227

New issue

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

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

Already on GitHub? # to your account

Merged
merged 1 commit into from
Apr 13, 2017

Conversation

alexcrichton
Copy link
Member

This commit knocks out a longstanding FIXME in rustbuild which should correctly
recompile stage0 compiletest and such whenever libstd itself changes. The
solution implemented here was to implement a notion of "order only" dependencies
and then add a new dependency stage for clearing out the tools dir, using
order-only deps to ensure that it happens correctly.

The dependency drawing for tools is a bit wonky now but I think this'll get the
job done.

Closes #39396

@rust-highfive
Copy link
Contributor

r? @aturon

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

@aturon
Copy link
Member

aturon commented Apr 12, 2017

@bors: r+

@bors
Copy link
Collaborator

bors commented Apr 12, 2017

📌 Commit d1298c8 has been approved by aturon

@bors
Copy link
Collaborator

bors commented Apr 13, 2017

⌛ Testing commit d1298c8 with merge 1c4a98c...

@bors
Copy link
Collaborator

bors commented Apr 13, 2017

💔 Test failed - status-travis

@TimNN
Copy link
Contributor

TimNN commented Apr 13, 2017

[00:48:34] error: failed to run custom build command for `openssl-sys v0.9.10`
[00:48:34] process didn't exit successfully: `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/build/openssl-sys-af1f288687ffbc04/build-script-build` (exit code: 101)
[00:48:34] --- stderr
[00:48:34] thread 'main' panicked at 'OpenSSL library directory does not exist: /checkout/obj/build/x86_64-unknown-linux-gnu/openssl/install/lib', /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/openssl-sys-0.9.10/build.rs:55
[00:48:34] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[00:48:34] 
[00:48:34] Build failed, waiting for other jobs to finish...
[00:48:36] error: build failed
[00:48:36] 
[00:48:36] 
[00:48:36] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "-j" "4" "--target" "x86_64-unknown-linux-gnu" "--release" "--locked" "--manifest-path" "/checkout/rls/Cargo.toml"
[00:48:36] expected success, got: exit code: 101
[00:48:36] 
[00:48:36] 
[00:48:36] Build completed unsuccessfully in 0:47:31

This commit knocks out a longstanding FIXME in rustbuild which should correctly
recompile stage0 compiletest and such whenever libstd itself changes. The
solution implemented here was to implement a notion of "order only" dependencies
and then add a new dependency stage for clearing out the tools dir, using
order-only deps to ensure that it happens correctly.

The dependency drawing for tools is a bit wonky now but I think this'll get the
job done.

Closes rust-lang#39396
@alexcrichton
Copy link
Member Author

@bors: r=aturon

@bors
Copy link
Collaborator

bors commented Apr 13, 2017

📌 Commit 2a33559 has been approved by aturon

frewsxcv added a commit to frewsxcv/rust that referenced this pull request Apr 13, 2017
rustbuild: Fix recompilation of stage0 tools dir

This commit knocks out a longstanding FIXME in rustbuild which should correctly
recompile stage0 compiletest and such whenever libstd itself changes. The
solution implemented here was to implement a notion of "order only" dependencies
and then add a new dependency stage for clearing out the tools dir, using
order-only deps to ensure that it happens correctly.

The dependency drawing for tools is a bit wonky now but I think this'll get the
job done.

Closes rust-lang#39396
@bors
Copy link
Collaborator

bors commented Apr 13, 2017

⌛ Testing commit 2a33559 with merge 28a7429...

bors added a commit that referenced this pull request Apr 13, 2017
rustbuild: Fix recompilation of stage0 tools dir

This commit knocks out a longstanding FIXME in rustbuild which should correctly
recompile stage0 compiletest and such whenever libstd itself changes. The
solution implemented here was to implement a notion of "order only" dependencies
and then add a new dependency stage for clearing out the tools dir, using
order-only deps to ensure that it happens correctly.

The dependency drawing for tools is a bit wonky now but I think this'll get the
job done.

Closes #39396
@bors
Copy link
Collaborator

bors commented Apr 13, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: aturon
Pushing 28a7429 to master...

@bors bors merged commit 2a33559 into rust-lang:master Apr 13, 2017
bors added a commit that referenced this pull request Apr 16, 2017
[rustbuild] Side-step HashMap iteration to preserve command-line step order.

The new `HashMap` was introduced by #41227 and it accidentally randomized step order.

r? @alexcrichton
@alexcrichton alexcrichton deleted the compiletest branch April 19, 2017 16:05
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants