summary refs log tree commit diff
path: root/src/bootstrap/dist.rs
AgeCommit message (Collapse)AuthorLines
2017-07-18Remove all packaging support for the RLSAlex Crichton-51/+1
2017-07-07Fix stage 2 builds with a custom libdir.Matthew Dawson-2/+3
When copying libstd for the stage 2 compiler, the builder ignores the configured libdir/libdir_relative configuration parameters. This causes the compiler to fail to find libstd, which cause any tools built with the stage 2 compiler to fail. To fix this, make the copy steps of rustbuild aware of the libdir_relative parameter when the stage >= 2. Also update the dist target to be aware of the new location of libstd.
2017-07-06Auto merge of #42899 - alexcrichton:compiler-builtins, r=nikomatsakisbors-1/+1
Switch to rust-lang-nursery/compiler-builtins This commit migrates the in-tree `libcompiler_builtins` to the upstream version at https://github.com/rust-lang-nursery/compiler-builtins. The upstream version has a number of intrinsics written in Rust and serves as an in-progress rewrite of compiler-rt into Rust. Additionally it also contains all the existing intrinsics defined in `libcompiler_builtins` for 128-bit integers. It's been the intention since the beginning to make this transition but previously it just lacked the manpower to get done. As this PR likely shows it wasn't a trivial integration! Some highlight changes are: * The PR rust-lang-nursery/compiler-builtins#166 contains a number of fixes across platforms and also some refactorings to make the intrinsics easier to read. The additional testing added there also fixed a number of integration issues when pulling the repository into this tree. * LTO with the compiler-builtins crate was fixed to link in the entire crate after the LTO process as these intrinsics are excluded from LTO. * Treatment of hidden symbols was updated as previously the `#![compiler_builtins]` crate would mark all symbol *imports* as hidden whereas it was only intended to mark *exports* as hidden.
2017-07-05Switch to rust-lang-nursery/compiler-builtinsAlex Crichton-1/+1
This commit migrates the in-tree `libcompiler_builtins` to the upstream version at https://github.com/rust-lang-nursery/compiler-builtins. The upstream version has a number of intrinsics written in Rust and serves as an in-progress rewrite of compiler-rt into Rust. Additionally it also contains all the existing intrinsics defined in `libcompiler_builtins` for 128-bit integers. It's been the intention since the beginning to make this transition but previously it just lacked the manpower to get done. As this PR likely shows it wasn't a trivial integration! Some highlight changes are: * The PR rust-lang-nursery/compiler-builtins#166 contains a number of fixes across platforms and also some refactorings to make the intrinsics easier to read. The additional testing added there also fixed a number of integration issues when pulling the repository into this tree. * LTO with the compiler-builtins crate was fixed to link in the entire crate after the LTO process as these intrinsics are excluded from LTO. * Treatment of hidden symbols was updated as previously the `#![compiler_builtins]` crate would mark all symbol *imports* as hidden whereas it was only intended to mark *exports* as hidden.
2017-07-04Use build.build instead of build.config.buildMark Simulacrum-7/+7
2017-07-04Remove src_is_git, instead call method on rust_info directly.Mark Simulacrum-1/+1
2017-07-04Clarify meaning of Build.cargo, Build.rustc.Mark Simulacrum-4/+4
Rename Build.{cargo, rustc} to {initial_cargo, initial_rustc}.
2017-07-04Clippy lintsMark Simulacrum-6/+5
2017-07-04Cleanup distMark Simulacrum-21/+11
2017-06-20Switch to the crates.io `getopts` crateAlex Crichton-1/+0
This commit deletes the in-tree `getopts` crate in favor of the crates.io-based `getopts` crate. The main difference here is with a new builder-style API, but otherwise everything else remains relatively standard.
2017-06-17Reintroduce deprecated `collections` crateMurarth-0/+1
2017-06-15Auto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichtonbors-2/+1
Merge crate `collections` into `alloc` This is a necessary step in order to merge #42565
2017-06-13Merge crate `collections` into `alloc`Murarth-2/+1
2017-06-13Add libprofiler_builtins to the list of paths for the rust-src componentMarco Castelluccio-0/+1
2017-06-01Rollup merge of #42306 - efyang:rls-packaging, r=alexcrichtonCorey Farwell-0/+46
Add the RLS to .exe, .msi, and .pkg installers This directly addresses issue #42157, adding the RLS as a non-default component in the mentioned installers. The windows installers appear to have the right functionality added, but I don't have a machine that runs OSX, so it would be great if someone could test whether my .pkg commit adds the RLS correctly. The final commit also fixes some formatting issues I'd noticed while working on the installers, but I don't know if that's within the scope of this PR, so input would be appreciated.
2017-05-29Add RLS to .pkg installerEdward Yang-0/+10
2017-05-29Add RLS to .exe and .msi installersEdward Yang-0/+36
2017-05-28rust-src: include everything needed to compile libstd with jemallocRalf Jung-6/+21
2017-05-27Auto merge of #42109 - Keruspe:master, r=alexcrichtonbors-91/+91
rustbuild: don't create a source tarball when installing This splits Install out of Dist as it is not a full dist anymore, and creates the source tarball only for the Dist command. This will allow splitting install in a few rules if we want as it's done for other phases.
2017-05-25Auto merge of #41932 - wesleywiser:py-to-rust, r=alexcrichtonbors-17/+137
Rewrite make-win-dist.py in Rust Fixes #41568
2017-05-22Create the bin dirWesley Wiser-0/+1
2017-05-22rustbuild: split Install out of Dist subcommandMarc-Antoine Perennou-91/+91
only create source tarball for the Dist subcommand mark install rule as default for Kind::Install split install-docs split install-std factor out empty_dir handling split install-cargo split install-analysis split install-src rework install-rustc properly handle cross-compilation setups for install use pkgname in install split plain source tarball generation from rust-src dist document src-tarball in config.toml.exmaple Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-16rustbuild: fix bash completion installation dirMarc-Antoine Perennou-2/+2
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-14Don't use sanitize_sh with rust-installerJosh Stone-41/+40
There's no shell interpreting the file paths under the new Rusty rust-installer, so we don't need to use `sanitize_sh` for it. Plus, the drive-letter transformation is actually harmful for the now-native Windows rust-installer to understand those paths.
2017-05-14Use "rust-installer tarball" to create rustc-src tooJosh Stone-4/+8
This gives us an extra rustc-src.tar.xz, which is 33% smaller than the .tar.gz!
2017-05-14Update to the oxidized rust-installerJosh Stone-24/+22
2017-05-14Rewrite make-win-dist.py in RustWesley Wiser-17/+136
Fixes #41568
2017-04-29Rollup merge of #41608 - cuviper:distcheck-rust-src, r=alexcrichtonCorey Farwell-0/+7
Add a distcheck for rust-src completeness This is for the last commit of #41546. For some reason, @bors only saw the first two commits, and wouldn't approve the last even when explicitly directed so. r? @alexcrichton
2017-04-29Update stage0 bootstrap compilerAlex Crichton-4/+2
We've got a freshly minted beta compiler, let's update to use that on nightly! This has a few other changes associated with it as well * A bump to the rustc version number (to 1.19.0) * Movement of the `cargo` and `rls` submodules to their "proper" location in `src/tools/{cargo,rls}`. Now that Cargo workspaces support the `exclude` option this can work. * Updates of the `cargo` and `rls` submodules to their master branches. * Tweak to the `src/stage0.txt` format to be more amenable for Cargo version numbers. On the beta channel Cargo will bootstrap from a different version than rustc (e.g. the version numbers are different), so we need different configuration for this. * Addition of `dev` as a readable key in the `src/stage0.txt` format. If present then stage0 compilers are downloaded from `dev-static.rust-lang.org` instead of `static.rust-lang.org`. This is added to accomodate our updated release process with Travis and AppVeyor.
2017-04-26Rollup merge of #41546 - cuviper:reduced-rust-src, r=alexcrichtonAriel Ben-Yehuda-27/+61
Shrink the rust-src component Before this change, the installable rust-src component had essentially the same contents as the rustc-src dist tarball, just additionally wrapped in a rust-installer. As discussed on [internals], rust-src is only meant to support uses for the standard library, so it doesn't really need the rest of the compiler sources. Now rust-src only contains libstd and its path dependencies, which roughly matches the set of crates that have rust-analysis data. The result is **significantly** smaller, from 36MB to 1.3MB compressed, and from 247MB to 8.5MB uncompressed. [internals]: https://internals.rust-lang.org/t/minimizing-the-rust-src-component/5117
2017-04-26Add a distcheck for rust-src completenessJosh Stone-0/+7
2017-04-25Reduce the contents of the rust-src componentJosh Stone-1/+29
2017-04-25Build the rustc-src tarball before the rust-src componentJosh Stone-27/+33
2017-04-24Adds rust-windbg.cmd scriptAndrew Gaspar-1/+6
2017-04-11Touch up rls integrationAlex Crichton-2/+16
* Use the right version when building combined installer * Update dependencies of rls as it depends on rustc and plugins * Fix build-manifest and the versions it uses for the rls
2017-04-10Remove --enable-save-analysis configure flagNick Cameron-5/+3
2017-04-10Reviewer changesNick Cameron-52/+7
2017-04-10Build an RLS package as part of the dist targetNick Cameron-1/+92
2017-04-03Only use cargo-vendor if building from git sourcesJosh Stone-19/+22
2017-03-21rustbuild: Don't hardcode 'nightly' for CargoAlex Crichton-8/+11
It now follows rustc release trains
2017-03-15Auto merge of #40383 - ishitatsuyuki:easy-dist-analysis, r=alexcrichtonbors-9/+5
rustbuild: Make save-analysis an option This makes save-analysis an option independent from the release channel. The CI build scripts have been modified to enable the flag. *Merge with caution.* I haven't tested this, and this can cause nightly breakage.
2017-03-11rustbuild: Fix a bug when manifesting with CargoAlex Crichton-1/+1
The wrong Cargo version was passed down so it ended up panicking the build-manifest script as it couldn't find the right tarball.
2017-03-11rustbuild: Skip saving analysis when disabledTatsuyuki Ishi-0/+4
2017-03-11rustbuild: Make save-analysis an optionTatsuyuki Ishi-9/+1
2017-03-10Test fixes and rebase conflictsAlex Crichton-1/+1
2017-03-10Don't put Cargo into the rustc workspaceAlex Crichton-5/+6
This causes problems when first cloning and bootstrapping the repository unfortunately, so let's ensure that Cargo sticks around in its own workspace. Because Cargo is a submodule it's not available by default on the inital clone of the rust-lang/rust repository. Normally it's the responsibility of the rustbuild to take care of this, but unfortunately to build rustbuild itself we need to resolve the workspace conflicts. To deal with this we'll just have to ensure that all submodules are in their own workspace, which sort of makes sense anyway as updates to dependencies as bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any case this commit removes Cargo from the global workspace which should resolve the issues that we've been seeing. To actually perform this the `cargo` submodule has been moved to the top directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.
2017-03-03rustbuild: Add support for compiling CargoAlex Crichton-58/+76
This commit adds support to rustbuild for compiling Cargo as part of the release process. Previously rustbuild would simply download a Cargo snapshot and repackage it. With this change we should be able to turn off artifacts from the rust-lang/cargo repository and purely rely on the artifacts Cargo produces here. The infrastructure added here is intended to be extensible to other components, such as the RLS. It won't exactly be a one-line addition, but the addition of Cargo didn't require too much hooplah anyway. The process for release Cargo will now look like: * The rust-lang/rust repository has a Cargo submodule which is used to build a Cargo to pair with the rust-lang/rust release * Periodically we'll update the cargo submodule as necessary on rust-lang/rust's master branch * When branching beta we'll create a new branch of Cargo (as we do today), and the first commit to the beta branch will be to update the Cargo submodule to this exact revision. * When branching stable, we'll ensure that the Cargo submodule is updated and then make a stable release. Backports to Cargo will look like: * Send a PR to cargo's master branch * Send a PR to cargo's release branch (e.g. rust-1.16.0) * Send a PR to rust-lang/rust's beta branch updating the submodule * Eventually send a PR to rust-lang/rust's master branch updating the submodule For reference, the process to add a new component to the rust-lang/rust release would look like: * Add `$foo` as a submodule in `src/tools` * Add a `tool-$foo` step which compiles `$foo` with the specified compiler, likely mirroring what Cargo does. * Add a `dist-$foo` step which uses `src/tools/$foo` and the `tool-$foo` output to create a rust-installer package for `$foo` likely mirroring what Cargo does. * Update the `dist-extended` step with a new dependency on `dist-$foo` * Update `src/tools/build-manifest` for the new component.
2017-02-16Auto merge of #39824 - alexcrichton:disable-dist-src, r=brsonbors-0/+4
travis: Disable source tarballs on most builders Currently we create a source tarball on almost all of the `DEPLOY=1` builders but this has the adverse side effect of all source tarballs overriding themselves in the S3 bucket. Normally this is ok but unfortunately a source tarball created on Windows is not buildable on Unix. On Windows the vendored sources contain paths with `\` characters in them which when interpreted on Unix end up in "file not found" errors. Instead of this overwriting behavior, whitelist just one linux builder for producing tarballs and avoid producing tarballs on all other hosts.
2017-02-15travis: Disable source tarballs on most buildersAlex Crichton-0/+4
Currently we create a source tarball on almost all of the `DEPLOY=1` builders but this has the adverse side effect of all source tarballs overriding themselves in the S3 bucket. Normally this is ok but unfortunately a source tarball created on Windows is not buildable on Unix. On Windows the vendored sources contain paths with `\` characters in them which when interpreted on Unix end up in "file not found" errors. Instead of this overwriting behavior, whitelist just one linux builder for producing tarballs and avoid producing tarballs on all other hosts.
2017-02-15use bash when invoking dist shell scripts on solarisShawn Walker-Salas-7/+14
Partially fixes #25845