summary refs log tree commit diff
path: root/src/bootstrap/dist.rs
AgeCommit message (Collapse)AuthorLines
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.
2018-04-01add a dist-thumb builder to build rust-std for the THUMB targetsJorge Aparicio-1/+6
the rust-std component only contains the core and compiler-builtins (+c +mem) crates cc #49382
2018-03-25Rollup merge of #49290 - cuviper:unextended-dist-rustfmt, r=nikomatsakiskennytm-1/+0
Allow installing rustfmt without config.extended This assertion was preventing `./x.py install rustfmt` if attempted without an "extended" build configuration, but it actually builds and installs just fine.
2018-03-25Rollup merge of #49193 - davidtwco:issue-29893, r=alexcrichtonkennytm-7/+62
Host compiler documentation Fixes #29893. Rust Central Station PR: rust-lang/rust-central-station#40 r? @alexcrichton
2018-03-22Allow installing rustfmt without config.extendedJosh Stone-1/+0
This assertion was preventing `./x.py install rustfmt` if attempted without an "extended" build configuration, but it actually builds and installs just fine.
2018-03-22Remove std/test documentation from compiler docs.David Wood-2/+2
2018-03-21Add support to rustbuild for a 'rustc docs' component tarballDavid Wood-7/+62
2018-03-18rustbuild: Ship libsynchronizationMaxim Nazarenko-0/+1
Ship libsynchronization from MinGW
2018-03-17Rollup merge of #49055 - alexcrichton:ship-more-libs, r=nikomatsakiskennytm-2/+4
rustbuild: Add more MinGW libraries to ship Closes #49044
2018-03-16Automatically enable the `clippy` feature of `rls` if clippy buildsOliver Schneider-3/+3
2018-03-16rustbuild: Add more MinGW libraries to shipAlex Crichton-2/+4
Closes #49044
2018-03-08Remove ONLY_BUILD_TARGETS.Mark Simulacrum-18/+3
All cases where it is used can be replaced by substituing run.host for run.builder.build.build; that is its only effect. As such, it is removable.
2018-03-04Include stdsimd in rust-src componentAlex Crichton-0/+1
Closes #48734