summary refs log tree commit diff
path: root/src/bootstrap/dist.rs
AgeCommit message (Collapse)AuthorLines
2018-11-22Move Cargo.{toml,lock} to the repository root directory.Eduard-Mihai Burtescu-2/+4
2018-11-11std: Delete the `alloc_system` crateAlex Crichton-1/+0
This commit deletes the `alloc_system` crate from the standard distribution. This unstable crate is no longer needed in the modern stable global allocator world, but rather its functionality is folded directly into the standard library. The standard library was already the only stable location to access this crate, and as a result this should not affect any stable code.
2018-11-03Auto merge of #55238 - alexcrichton:rm-jemalloc, r=estebankbors-3/+0
Remove the `alloc_jemalloc` crate This commit removes the `alloc_jemalloc` crate from the standard library and all related configuration. We will no longer be shipping this unstable crate. Rationale for this is provided on https://github.com/rust-lang/rust/issues/36963 and the many linked issues, but I can inline rationale here if desired! We currently rely on jemalloc for increased perf in the Rust compiler, however. [This perf run shows](https://perf.rust-lang.org/compare.html?start=74ff7dcb1388e60a613cd6050bcd372a3cc4998b&end=7e7928dc0340d79b404e93f0c79eb4b946c1d669&stat=wall-time) that if we switch to glibc 2.23's allocator that it's slower than jemalloc across many benchmarks. [This perf run, however](https://perf.rust-lang.org/compare.html?start=22cc2ae8057d14e980b7c784e1eb2eee26b59e7d&end=10c95ccfa7a7adc12f4e608621ca29f9b98eed29), shows that if we use `jemalloc-sys` from crates.io then rustc actually gets faster across all benchmarks! (presumably because it has a more recent version of jemalloc than our submodule). As a result, it's expected that this doesn't regress any code (as it's just removing an unstable crate) and it should actually improve rustc performance because it updates jemalloc. Closes #36963
2018-11-03Auto merge of #55363 - pietroalbini:update-cargo-vendor, r=Mark-Simulacrumbors-1/+1
Bump cargo-vendor version Currently we pin `cargo-vendor` to 0.1.4, which doesn't set the `User-Agent` HTTP header. crates.io is going to require that header in the near future, so this PR bumps the pinned version of the crate to the latest one (which correctly sets the header). r? @Mark-Simulacrum cc @sgrif
2018-11-02Remove all jemalloc-related contentAlex Crichton-3/+0
This commit removes all jemalloc related submodules, configuration, etc, from the bootstrap, from the standard library, and from the compiler. This will be followed up with a change to use jemalloc specifically as part of rustc on blessed platforms.
2018-11-01Rollup merge of #55280 - vlad20012:add-libproc_macro-to-src-disrt, ↵Pietro Albini-0/+1
r=Mark-Simulacrum Add libproc_macro to rust-src distribution Fixes #55279
2018-10-31bootstrap: bump cargo-vendor version to 0.1.19Pietro Albini-1/+1
2018-10-26Remove redundant cloneShotaro Yamada-2/+2
2018-10-23Add libproc_macro to rust-src distributionvlad20012-0/+1
2018-10-20Update Cargo, build curl/OpenSSL statically via featuresAlex Crichton-7/+0
In addition to to updating Cargo's submodule and Cargo's dependencies, this also updates Cargo's build to build OpenSSL statically into Cargo as well as libcurl unconditionally. This removes OpenSSL build logic from the bootstrap code, and otherwise requests that even on OSX we build curl statically.
2018-10-13bootstrap: update clippy license locations which changed due to relicensing.Matthias Krüger-2/+4
2018-09-28Add enable-missing-tools optionChristian Poveda-5/+13
2018-09-07Have rust-lldb look for the rust-enabled lldbTom Tromey-3/+4
We're shipping a rust-enabled lldb, but the "lldb" executable is not installed into the "bin" directory by rustup. See the discussion in https://github.com/rust-lang-nursery/rustup.rs/pull/1492 for background on this decision. There, we agreed to have rust-lldb prefer the rust-enabled lldb if it is installed. This patch changes dist.rs to put lldb into rustlib, following what was done for the other LLVM tools in #53955, and then fixes rust-lldb to prefer that lldb, if it exists. See issue #48168
2018-09-06Ship libLLVM.dylib on OSXAlex Crichton-2/+10
Previously we just weren't shipping this at all as we were only looking for the Linux version!
2018-09-05rustbuild: Tweak LLVM distribution layoutAlex Crichton-2/+4
This commit tweaks the layout of a few components that we distribute to hopefully fix across all platforms the recent issues with LLD being unable to find the LLVM shared object. In #53245 we switched to building LLVM as a dynamic library, which means that LLVM tools by default link to LLVM dynamically rather than statically. This in turn means that the tools, at runtime, need to find the LLVM shared library. LLVM's shared library is currently distributed as part of the rustc component. This library is located, however, at `$sysroot/lib`. The LLVM tools we ship are in two locations: * LLD is shipped at `$sysroot/lib/rustlib/$host/bin/rust-lld` * Other LLVM tools are shipped at `$sysroot/bin` Each LLVM tool has an embedded rpath directive indicating where it will search for dynamic libraries. This currently points to `../lib` and is presumably inserted by LLVM's build system. Unfortunately, though, this directive is only correct for the LLVM tools at `$sysroot/bin`, not LLD! This commit is targeted at fixing this situation by making two changes: * LLVM tools other than LLD are moved in the distribution to `$sysroot/lib/rustlib/$host/bin`. This moves them next to LLD and should position them for... * The LLVM shared object is moved to `$sysroot/lib/rustlib/$host/lib` Together this means that all tools should natively be able to find the shared object and the shared object should be installed all the time for the various tools. Overall this should... Closes #53813
2018-08-30rustbuild: Distribute libLLVM.so with rustcAlex Crichton-5/+7
A recent change (#53245) started to build LLVM with ThinLTO enabled and to ensure that compile times are kept down it builds LLVM dynamically by default to ensure that all the various LLVM tools aren't redoing all that optimization work. This means, however, that all LLVM tools depend on LLVM's dynamic library by default. While the LLVM tools and LLDB components were updated to include the shared library we accidentally forgot about LLD, included with the main rustc component. LLD also links dynamically to LLVM and ships a non-working binary right now because of this! This commit updates our distribution to ship the LLVM dynamic library with the compiler libraries. While not technically needed for rustc itself to operate (right now) it may be needed for LLD, and otherwise it serves as a good basis for the other LLVM tools components to work with as well. This should... Closes #53813
2018-08-29bootstrap: Link LLVM tools dynamically in order to save time in ThinLTO builds.Michael Woerister-8/+38
2018-08-14Add lldb to the buildTom Tromey-0/+123
This optionally adds lldb (and clang, which it needs) to the build. Because rust uses LLVM 7, and because clang 7 is not yet released, a recent git master version of clang is used. The lldb that is used includes the Rust plugin. lldb is only built when asked for, or when doing a nightly build on macOS. Only macOS is done for now due to difficulties with the Python dependency.
2018-07-30Remove the unstable std_unicode crate, deprecated since 1.27Simon Sapin-1/+0
Its former contents are now in libcore.
2018-07-28Don't format!() string literalsljedrz-8/+8
2018-07-15tidy: avoid long lineSébastien Marie-1/+2
2018-07-15Disable LlvmTools packaging with external LLVMSébastien Marie-0/+8
Fixes: #52102
2018-07-11Auto merge of #52172 - oli-obk:clippy_in_rls, r=nrcbors-1/+6
Inject clippy into the rls again Also makes sure we actually point to the local rustfmt r? @nrc cc @Manishearth
2018-07-09Change gcc warning file name, remove unnecessary referenceljedrz-2/+2
2018-07-09Warn windows-gnu users that the bundled gcc can't compileljedrz-0/+8
2018-07-09Also distribute cargo clippyOliver Schneider-1/+6
2018-07-05Auto merge of #51917 - alexcrichton:update, r=Mark-Simulacrumbors-1/+1
Update crates in `Cargo.lock` This is a "hopefully routine" update of our crates.io-based crates in `Cargo.lock`, and let's see how it fares on CI...
2018-07-05Auto merge of #51936 - japaric:rust-lld, r=alexcrichtonbors-1/+2
rename rustc's lld to rust-lld to not shadow the system installed LLD when linking with LLD. Before: - `-C linker=lld -Z linker-flavor=ld.lld` uses rustc's LLD - It's not possible to use a system installed LLD that's named `lld` With this commit: - `-C linker=rust-lld -Z linker-flavor=ld.lld` uses rustc's LLD - `-C linker=lld -Z linker-flavor=ld.lld` uses the system installed LLD we don't offer guarantees about the availability of LLD in the rustc sysroot so we can rename the tool as long as we don't break the wasm32-unknown-unknown target which depends on it. r? @alexcrichton we discussed this before
2018-07-04in the second copy lld is already named rust-lldJorge Aparicio-4/+3
2018-07-03Compile stage0 tools with the raw bootstrap compilerAlex Crichton-1/+1
This commit updates the stage0 build of tools to use the libraries of the stage0 compiler instead of the compiled libraries by the stage0 compiler. This should enable us to avoid any stage0 hacks (like missing SIMD).
2018-07-02Auto merge of #51122 - oli-obk:clippy, r=Mark-Simulacrumbors-0/+113
Did you mean to block nightlies on clippy? Discussion: https://gitter.im/rust-lang/WG-clippy?at=5b073b6597a0361fb760cdc2 r? @alexcrichton did I forget anything? cc @nrc @Manishearth
2018-07-02Clippy tool also has only a single LICENSE fileOliver Schneider-2/+1
2018-07-01Did you mean to block nightlies on clippy?Oliver Schneider-0/+114
2018-06-29rename rustc's lld to rust-lldJorge Aparicio-3/+5
to not shadow the system installed LLD when linking with LLD. Before: - `-C linker=lld -Z linker-flavor=ld.lld` uses rustc's LLD - It's not possible to use a system installed LLD that's named `lld` With this commit: - `-C linker=rust-lld -Z linker-flavor=ld.lld` uses rustc's LLD - `-C linker=lld -Z linker-flavor=ld.lld` uses the system installed LLD
2018-06-29rename the llvm-tools component to llvm-tools-preview and tweak its imageJorge Aparicio-7/+10
2018-06-23build: llvm-tools: replace compiler.hostBrad Campbell-15/+7
Use `target` instead.
2018-06-23build: llvm_tools tidyBrad Campbell-1/+5
2018-06-23build: add llvm-tools to manifestBrad Campbell-2/+5
This commit expands on a previous commit to build llvm-tools as a rustup component. It causes the llvm-tools component to be built if the extended step is active. It also adds llvm-tools to the build manifest so rustup can find it.
2018-06-21Auto merge of #50336 - japaric:llvm-tools, r=Mark-Simulacrumbors-2/+80
ship LLVM tools with the toolchain this PR adds llvm-{nm,objcopy,objdump,size} to the rustc sysroot (right next to LLD) this slightly increases the size of the rustc component. I measured these numbers on x86_64 Linux: - rustc-1.27.0-dev-x86_64-unknown-linux-gnu.tar.gz 180M -> 193M (+7%) - rustc-1.27.0-dev-x86_64-unknown-linux-gnu.tar.xz 129M -> 137M (+6%) r? @alexcrichton cc #49584
2018-06-03make a llvm-tools rustup componentJorge Aparicio-19/+79
2018-06-03ship LLVM tools with the toolchainJorge Aparicio-1/+19
2018-06-03impl is_tool on Mode enumCollins Abitekaniza-1/+1
make is_tool inherent prop of mode fix errors from rebase resolve issues from review
2018-06-03refactor Mode enumCollins Abitekaniza-1/+1
2018-05-31Use builder.cargo() for cargo-vendor.Johannes Nixdorf-5/+8
This makes it go through boostrap/bin/rustc.rs, so it will use -crt-static if needed.
2018-04-17Remove uses of Build across Builder stepsMark Simulacrum-311/+298
2018-04-05Rollup merge of #49563 - japaric:std-thumb, r=alexcrichtonkennytm-1/+6
add a dist builder to build rust-std components for the THUMB targets the rust-std component only contains the core and compiler-builtins (+c +mem) crates cc #49382 - I'm not entirely sure if this PR alone will produce rust-std components installable by rustup or if something else needs to be changed - I could have done the THUMB builds in an existing builder / image; I wasn't sure if that was a good idea so I added a new image - I could build other crates like alloc into the rust-std component but, AFAICT, that would require calling Cargo a second time (one for alloc and one for compiler-builtins), or have alloc depend on compiler-builtins (#49503 will perform that change) *and* have alloc resurface the "c" and "mem" Cargo features. r? @alexcrichton
2018-04-03Fix a few accidental expectationsMark Simulacrum-4/+9
2018-04-03Avoid printing output when in dry run modeMark Simulacrum-18/+18
2018-04-03Refactor to use a dry-run config instead of cfg(test)Mark Simulacrum-134/+102
This ensures that each build will support the testing design of "dry running" builds. It's also checked that a dry run build is equivalent step-wise to a "wet" run build; the graphs we generate when running are directly compared node/node and edge/edge, both for order and contents.
2018-04-03Make test steps sortableMark Simulacrum-12/+12
Ensures that test cases will be somewhat easier to write.