Commit Graph

1096 Commits

Author SHA1 Message Date
bors
c703ff275f Auto merge of #45806 - alexcrichton:update-llvm-for-mips, r=michaelwoerister
rustbuild: Re-enable ThinLTO for MIPS

Now that the upstream LLVM bug is now fixed this commit cherry-picks the commit
onto our LLVM and then re-enables the ThinLTO paths for MIPS.

Closes #45654
2017-11-11 02:11:34 +00:00
Alex Crichton
6bc8f164b0 std: Remove rand crate and module
This commit removes the `rand` crate from the standard library facade as
well as the `__rand` module in the standard library. Neither of these
were used in any meaningful way in the standard library itself. The only
need for randomness in libstd is to initialize the thread-local keys of
a `HashMap`, and that unconditionally used `OsRng` defined in the
standard library anyway.

The cruft of the `rand` crate and the extra `rand` support in the
standard library makes libstd slightly more difficult to port to new
platforms, namely WebAssembly which doesn't have any randomness at all
(without interfacing with JS). The purpose of this commit is to clarify
and streamline randomness in libstd, focusing on how it's only required
in one location, hashmap seeds.

Note that the `rand` crate out of tree has almost always been a drop-in
replacement for the `rand` crate in-tree, so any usage (accidental or
purposeful) of the crate in-tree should switch to the `rand` crate on
crates.io. This then also has the further benefit of avoiding
duplication (mostly) between the two crates!
2017-11-08 20:41:17 -08:00
kennytm
843dc4bd76
Rollup merge of #45588 - Keruspe:master, r=alexcrichton
rustbuild: don't try to install rls if ToolState is not Testing

We already do that for the Dist Step so we would end up trying to install something that we didn't dist.
2017-11-07 22:40:11 +08:00
Alex Crichton
ef0d843e61 rustbuild: Re-enable ThinLTO for MIPS
Now that the upstream LLVM bug is now fixed this commit cherry-picks the commit
onto our LLVM and then re-enables the ThinLTO paths for MIPS.

Closes #45654
2017-11-06 07:49:05 -08:00
Ximin Luo
32cf6e64c1 Ensure dist::Std for every libstd target. (Closes: #42320)
This fixes cross-compile installation. Half of the logic is actually in there
already in install.rs:install_std but it fails with an error like:

sh: 0: Can't open /<<BUILDDIR>>/rustc-1.21.0+dfsg1/build/tmp/dist/rust-std-1.21.0-powerpc64le-unknown-linux-gnu/install.sh

because the target-arch dist tarball wasn't built as well.
2017-11-06 11:38:27 +01:00
Alex Crichton
c11ac9441a rustbuild: Update the OpenSSL version to link
This updates the OpenSSL tarball download to reflect OpenSSL's newest release.
2017-11-04 08:05:46 -07:00
Marc-Antoine Perennou
784528b8da rustbuild: don't try to install rls if ToolState is not Testing
The Dist Step is not ran in that case so we would end up trying to
install something that we didn't dist.

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-11-04 15:49:18 +01:00
kennytm
9ca6ee0299 Rollup merge of #45548 - ratmice:master, r=oli-obk
issue #45357 don't build clippy stage 1

#45357
Wasn't sure top_stage was the right thing, but seemed to go ahead building clippy stage 2.
2017-11-04 13:49:26 +08:00
matt rice
aa9d0aae99 issue #45357 set clippy build condition to extended. 2017-11-03 10:52:36 -07:00
kennytm
28b18790f7 Rollup merge of #45624 - glaubitz:bootstrap-sparc64, r=kennytm
bootstrap: Add missing cputype matching for sparc64

Trying to configure rust natively on sparc64-unknown-linux-gnu currently fails with:

```
root@deb4g:/local_scratch/glaubitz/rust/rust# ./configure --host=sparc64-unknown-linux-gnu --enable-local-rust --local-rust-root=/usr/local
configure: processing command line
configure:
configure: build.host           := ['sparc64-unknown-linux-gnu']
configure: build.rustc          := /usr/local/bin/rustc
configure: build.cargo          := /usr/local/bin/cargo
configure: build.rustc          := /usr/local/bin/rustc
configure: build.cargo          := /usr/local/bin/cargo
configure: build.configure-args := ['--host=sparc64-unknown-linux-gnu', '--enable ...
unknown cpu type: sparc64
root@deb4g:/local_scratch/glaubitz/rust/rust#
```

This is trivially fixed by defining sparc64 as a valid cputype.
2017-11-01 13:32:12 +08:00
kennytm
18fa54f835 Rollup merge of #45619 - mneumann:fix-bootstrap-dragonfly, r=alexcrichton
Support Dragonfly when building Openssl
2017-11-01 13:32:11 +08:00
John Paul Adrian Glaubitz
d7dec7c8d7 bootstrap: Add missing cputype matching for sparc64 2017-10-31 19:26:41 +01:00
Alex Crichton
b1fd5a7618 rustbuild: Don't build with ThinLTO on MIPS
Discovered in #45529 it looks like cross-module TLS imports aren't quite working
today, especially with `hidden` visibility which mostly comes up with multiple
codegen units. As a result this completely disables compiling with ThinLTO and
multiple codegen units on MIPS when bootstrapping.

cc #45654, the tracking issue for this
2017-10-31 07:01:02 -07:00
Michael Neumann
aa4726cd37 Support Dragonfly when building Openssl 2017-10-29 18:42:04 +01:00
kennytm
c46b04cbdd
ci: Upgrade Android SDK/NDK and refactor to use sdkmanager/avdmanager.
* SDK tools is upgraded to 27.0.0.
   - Refactored to use `sdkmanager`/`avdmanager` instead of the deprecated
     `android` tool.

* The Java version used by Android SDK is downgraded to OpenJDK-8, in order
  to download the SDK through HTTPS.

* NDK is upgrade to r15c.
   - Dropped support for android-9 (2.3 / Gingerbread), the minimal
     supported version is now android-14 (4.0 / Ice Cream Sandwich).
   - Changed the default Android compiler from GCC to clang.
   - For details of change introduced by NDK r15, see
     https://github.com/android-ndk/ndk/wiki/Changelog-r15.
2017-10-29 05:58:00 +08:00
bors
7da9a5e178 Auto merge of #45589 - kennytm:rollup, r=kennytm
Rollup of 7 pull requests

- Successful merges: #45421, #45449, #45505, #45535, #45549, #45574, #45585
- Failed merges:
2017-10-28 09:42:38 +00:00
kennytm
a03d0181c5 Rollup merge of #45535 - topecongiro:bootstrap-exit-code, r=kennytm
Return 0 as an exit status when no subcommand is given to bootstrap

Running `./x.py` emits usage and error messages when no subcommand is given:
```
Usage: x.py <subcommand> [options] [<paths>...]

Subcommands:
    build       Compile either the compiler or libraries
    test        Build and run some test suites
    bench       Build and run some benchmarks
    doc         Build documentation
    clean       Clean out build directories
    dist        Build distribution artifacts
    install     Install distribution artifacts

To learn more about a subcommand, run `./x.py <subcommand> -h`

failed to run: /home/topecongiro/rust/build/bootstrap/debug/bootstrap
```
IMHO the last line is unnecessary. This PR removes it by changing the return code of `bootstrap` to 0 when no sub command is given.
2017-10-28 15:56:22 +08:00
bors
75277c72c0 Auto merge of #45566 - cuviper:option-checking, r=alexcrichton
configure.py: fix --disable-option-checking and extra config paths

- indexing 'option-checking' out of `known_args` had a type error
- when option checking is disabled, don't error on duplicate args, just take the last
- add config.toml stubs for datadir, infodir, and localstatedir (which were already accepted, but broken)

---

This fixes a regression from 1.21 to beta, when the configure script was rewritten in python.
2017-10-28 07:08:52 +00:00
topecongiro
732d9b281c Return 0 when ./x.py has no subcommand 2017-10-27 09:26:53 +09:00
Josh Stone
19714f55ee config.toml: Add stubs for recognized-but-unused install paths
... specifically `datadir`, `infodir`, and `localstatedir`.  These were
already accepted by `configure.py`, but it didn't have any place to put
the values.
2017-10-26 17:23:14 -07:00
Josh Stone
924331cc9b configure.py: fix --disable-option-checking
Getting the value of this argument needs another level of indexing,
as `known_args` are stored in `{dict}[list](opt, value)` form.

Also, when option-checking is disabled, let this bypass the check that
options are only passed once, and just apply the last value.
2017-10-26 17:19:29 -07:00
Alex Crichton
ca18537197 Bump to 1.23 and update bootstrap
This commit updates the bootstrap compiler, bumps the version to 1.23, updates
Cargo, updates books, and updates crates.io dependencies
2017-10-26 13:59:18 -07:00
matt rice
0cd03bf5f3 issue #45357 don't build clippy stage 1 2017-10-26 05:26:05 -07:00
kennytm
7ccdc105cf Rollup merge of #45496 - kennytm:bootstrap-fix-extension-check, r=alexcrichton
rustbuild: Fix `no output generated` error for next bootstrap cargo.

Due to rust-lang/cargo#4570, a `*.dll.lib` file is uplifted when building dynamic libraries on Windows. The current bootstrap code does not understand files with multiple extensions, and will instead assume `xxxx.dll` is the file name. This caused a `no output generated` error because it tries to search for `xxxx.dll-hash.lib` inside the `deps/` folder, while it should check for `xxxx-hash.dll.lib` instead.

This PR is blocking #45285, see https://github.com/rust-lang/rust/pull/45285#issuecomment-338454149 and the rest of the comments for detail.
2017-10-26 03:02:52 +08:00
Guillaume Gomez
e09585c7c2 Rollup merge of #45465 - glaubitz:sparc64, r=alexcrichton
bootstrap: Add openssl configuration for sparc64-unknown-linux-gnu

Hi!

This adds the target missing mapping for sparc64-unknown-linux-gnu.

See: https://github.com/rust-lang/rust/issues/45456

Thanks
2017-10-25 09:48:10 +02:00
bors
aa40292e78 Auto merge of #44603 - SimonSapin:stylo, r=alexcrichton
Add Stylo and WebRender to src/tools/cargotest

This is a subset of Servo that takes relatively less time to compile and does not use unstable Rust features.
2017-10-24 23:30:15 +00:00
bors
c2799fc9a5 Auto merge of #45446 - leodasvacas:remove-libcollections, r=alexcrichton
Remove deprecated `collections` crate.

The real `collections` was merged with `alloc`, this facade was introduced [in this PR](https://github.com/rust-lang/rust/pull/42720) to give `#[no_std]` users time to adapt. This was done at least two cycles ago, now we can consider removing it for good.
2017-10-24 20:46:17 +00:00
kennytm
3b815730a7
rustbuild: Fix no output generated error for next bootstrap cargo.
Due to rust-lang/cargo#4570, a `*.dll.lib` file is uplifted when building
dynamic libraries on Windows. The current bootstrap code does not
understand files with multiple extensions, and will instead assume
`xxxx.dll` is the file name. This caused a `no output generated` error
because it tries to search for `xxxx.dll-hash.lib` inside the `deps/`
folder, while it should check for `xxxx-hash.dll.lib` instead.

This PR is blocking #45285 (Bump to 1.23 and update bootstrap).
2017-10-25 00:32:28 +08:00
John Paul Adrian Glaubitz
929a8bc13f bootstrap: Add openssl configuration for sparc64-unknown-linux-gnu 2017-10-24 08:53:22 +02:00
Simon Sapin
f4f18586e7 Move cargotest to separate jobs on Travis-CI and AppVeyor 2017-10-23 13:12:12 +02:00
bors
1babcd0393 Auto merge of #45304 - kennytm:travis-color-color-conflict, r=aturon
Fix rustbuild --color conflict when building on Travis outside of Docker

When trying to build rust on Travis without using `stamp` or `docker`, both `RUSTC_COLOR=1` and `TRAVIS=true` will separately pass `--color always` to the command line. This causes the build to fail due to "*Option 'color' given more than once*".

In this PR, the `RUSTC_COLOR=1` will not be passed in the CI environment.
2017-10-22 17:52:55 +00:00
leonardo.yvens
170f63e1c6 Don't build docs for removed libcollections. 2017-10-22 14:55:02 -02:00
leonardo.yvens
19aa23b6d3 Remove deprecated collections crate.
This reverts commit 6484258f17.
2017-10-22 14:55:02 -02:00
bors
942f31f5ea Auto merge of #45432 - ollie27:rustbuild_error_index_gen, r=Mark-Simulacrum
rustbuild: Build stage 1 error index generator at stage 0

At stage 1 rustdoc is built at stage 0 so the error index generator should be as well.

This fixes `x.py --stage 1 doc` as rustdoc doesn't even build at stage 1.

It was broken by #44605.

r? @alexcrichton
2017-10-22 11:30:15 +00:00
bors
b6055cb7d2 Auto merge of #45433 - ollie27:rustbuild_nomicon, r=Mark-Simulacrum
rustbuild: Fix path for the nomicon
2017-10-22 08:55:06 +00:00
bors
1042190f8c Auto merge of #45400 - alexcrichton:bootstrap-thinlto, r=Mark-Simulacrum
rustbuild: Compile rustc with ThinLTO

This commit enables ThinLTO for the compiler as well as multiple codegen units.
This is intended to get the benefits of parallel codegen while also avoiding
any major loss of perf. Finally this commit is also intended as further testing
for #45320 and shaking out bugs.
2017-10-22 00:35:05 +00:00
bors
ff8773d7be Auto merge of #45366 - ollie27:rustbuild_compiler_docs, r=alexcrichton
rustbuild: Don't try to build rustdoc API docs with compiler docs

rustdoc is built separately to rustc now so the docs would need to be
generated separately as well. Also rustdoc doesn't build at stage 1
which prevented the compiler docs being built at stage 1.

Fixes: #44629
2017-10-21 16:32:31 +00:00
Oliver Middleton
f820d2e567 rustbuild: Fix path for the nomicon 2017-10-21 17:16:46 +01:00
Oliver Middleton
2045e07745 rustbuild: Build stage 1 error index generator at stage 0
At stage 1 rustdoc is built at stage 0 so the error index generator should be as well.

This fixes `x.py --stage 1 doc` as rustdoc doesn't even build at stage 1.
2017-10-21 16:47:18 +01:00
kennytm
ebbcad9ae0
Fix rustbuild --color conflict when building on Travis outside of Docker. 2017-10-21 04:55:33 +08:00
Alex Crichton
1af1c2de36 rustbuild: Compile rustc with ThinLTO
This commit enables ThinLTO for the compiler as well as multiple codegen units.
This is intended to get the benefits of parallel codegen while also avoiding
any major loss of perf. Finally this commit is also intended as further testing
for #45320 and shaking out bugs.
2017-10-20 11:49:36 -07:00
bors
b633341c49 Auto merge of #44792 - Mark-Simulacrum:correct-deps, r=alexcrichton
Make sure to clear out the stageN-{rustc,std,tools} directories.

We copy built tool binaries into a dedicated directory to avoid deleting them,
stageN-tools-bin.  These aren't ever cleared out by code, since there should be
no reason to do so, and we'll simply overwrite them as necessary.

When clearing out the stageN-{std,rustc,tools} directories, make sure to delete
both Cargo directories -- per-target and build scripts. This ensures that
changing libstd doesn't cause problems due to build scripts not being rebuilt,
even though they should be.

Fixes https://github.com/rust-lang/rust/issues/44739.
2017-10-20 17:36:40 +00:00
Mark Simulacrum
686c1015cf Make tools which may not build return Option.
This makes it mandatory for other steps to have to handle the potential
failure instead of failing in an odd way later down the road.
2017-10-19 17:30:37 -06:00
kennytm
437186217b
Rollup merge of #45382 - Keruspe:master, r=Mark-Simulacrum
rustbuild: fix dist in debug mode

In debug mode, the artifacts are placed in "debug", so don't hardcode "release" and use our helper to get the right directory name
2017-10-20 00:01:57 +08:00
kennytm
44e882cf92
Rollup merge of #45375 - topecongiro:enable-tilde, r=Mark-Simulacrum
Allow passing a path with tilde to the configure script

Currently `./configure --local-rust-root=~/.cargo --enable-local-rebuild` fails with
 ```
Exception: no cargo executable found at `~/.cargo//bin/cargo`
```
2017-10-20 00:01:54 +08:00
kennytm
3de1f8ba53
Rollup merge of #45374 - topecongiro:remove-enable-rustbuild-config-option, r=Mark-Simulacrum
Remove --enable-rustbuild config option from an example

`--enable-rustbuild` is no longer recognized by the configure script. Also I think we should use `./configure` and `./x.py` instead of `configure` and `../x.py`.
2017-10-20 00:01:53 +08:00
Marc-Antoine Perennou
27cc11931a rustbuild: fix dist in debug mode
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-10-19 12:22:16 +02:00
Mark Simulacrum
0fcd3e7b07 Make sure to clear out the stageN-{rustc,std,tools} directories.
We copy built tool binaries into a dedicated directory to avoid deleting
them, stageN-tools-bin. These aren't ever cleared out by code, since
there should be no reason to do so, and we'll simply overwrite them as
necessary.

When clearing out the stageN-{std,rustc,tools} directories, make sure to
delete both Cargo directories -- per-target and build scripts. This
ensures that changing libstd doesn't cause problems due to build scripts
not being rebuilt, even though they should be.
2017-10-18 16:30:33 -06:00
topecongiro
0dde8cdd40 Allow passing a path with tilde 2017-10-19 06:22:32 +09:00
topecongiro
e11abd1541 Fix typos 2017-10-19 06:02:13 +09:00