about summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2018-10-18Rollup merge of #55031 - nikic:verify_llvm_ir, r=Mark-Simulacrumkennytm-8/+3
Improve verify_llvm_ir config option LLVM IR verification has been disabled by default in #51230. However, the implementation doesn't quite match what was discussed in the discussion. This patch implements two changes: * Make `verify_llvm_ir` influence the behavior of the compiled rustc binary, rather than just the rustc build system. That is, if `verify_llvm_ir=true`, even manual invocations of the built rustc will verify LLVM IR. * Enable verification of LLVM IR in CI, for non-deploy and deploy-alt builds. This is similar to how LLVM assertions are handled.
2018-10-18Rollup merge of #54964 - tromey:run-both-gdb-and-lldb-tests, r=nikomatsakiskennytm-14/+6
Run both lldb and gdb tests Currently lldb tests are run only on macOS, and gdb tests are only run elsewhere. This patch changes this to run tests depending on what is available. One test is changed, as it was previously marked as failing on macOS, whereas really it is a generic failure with lldb. Closes #54721
2018-10-14Auto merge of #55051 - matthiaskrgr:dist_msg, r=Mark-Simulacrumbors-0/+3
boostrap: dist: if a file cannot be installed because it does not exist, print its name in the error message.
2018-10-13boostrap: dist: if a file cannot be installed because it does not exist, ↵Matthias Krüger-0/+3
print its name in the error message.
2018-10-13bootstrap: update clippy license locations which changed due to relicensing.Matthias Krüger-2/+4
2018-10-13Improve verify_llvm_ir config optionNikita Popov-8/+3
* Make it influence the behavior of the compiled rustc, rather than just the rustc build system. That is, if verify_llvm_ir=true, even manual invocations of the built rustc will verify LLVM IR. * Enable verification of LLVM IR in CI, for non-deploy and deploy-alt builds. This is similar to how LLVM assertions are handled.
2018-10-12Rollup merge of #54811 - ↵kennytm-1/+3
pnkfelix:issue-24840-separate-bootstrap-default-for-optimize-from-debug-setting, r=nikomatsakis During rustc bootstrap, make default for `optimize` independent of `debug` It may have taken me three and a half years, but I'm following through on my ["threat"](https://github.com/rust-lang/rust/issues/24840#issuecomment-97911700) Fix #24840
2018-10-10Run both lldb and gdb testsTom Tromey-14/+6
Currently lldb tests are run only on macOS, and gdb tests are only run elsewhere. This patch changes this to run tests depending on what is available. One test is changed, as it was previously marked as failing on macOS, whereas really it is a generic failure with lldb. Closes #54721
2018-10-10Auto merge of #54764 - tromey:test-rust-lldb, r=alexcrichtonbors-23/+27
Run debuginfo tests against rust-enabled lldb, when possible If the rust-enabled lldb was built, then use it when running the debuginfo tests. Updating the lldb submodule was necessary as this needed a way to differentiate the rust-enabled lldb, so I added a line to the --version output. This adds compiletest commands to differentiate between the rust-enabled and non-rust-enabled lldb, as is already done for gdb. A new "rust-lldb" header directive is also added, but not used in this patch; I plan to use it in #54004. This updates all the tests.
2018-10-08Run debuginfo tests against rust-enabled lldb, when possibleTom Tromey-23/+27
If the rust-enabled lldb was built, then use it when running the debuginfo tests. Updating the lldb submodule was necessary as this needed a way to differentiate the rust-enabled lldb, so I added a line to the --version output. This adds compiletest commands to differentiate between the rust-enabled and non-rust-enabled lldb, as is already done for gdb. A new "rust-lldb" header directive is also added, but not used in this patch; I plan to use it in #54004. This updates all the tests.
2018-10-04Fix #24840: make default for `optimize` independent of `debug` setting in ↵Felix S. Klock II-1/+3
`Cargo.toml`.
2018-10-04Auto merge of #54638 - christianpoveda:master, r=kennytmbors-5/+18
Add checking for tool distribution in Tier 1 This fixes https://github.com/rust-lang/rust/issues/54483 r? @kennytm
2018-10-01Fix conditions to allow missing tools in CIChristian Poveda-1/+3
2018-10-01Rollup merge of #54708 - collin5:b49475, r=Mark-Simulacrumkennytm-0/+5
Make ./x.py help <cmd> invoke ./x.py <cmd> -h on its own Fixes #49475 r? @Mark-Simulacrum
2018-10-01Rollup merge of #54681 - alexcrichton:san-names, r=kennytmkennytm-1/+1
Rename sanitizer runtime libraries on OSX Currently we ship sanitizer libraries as they're built, but these names unfortunately conflict with the names of the sanitizer libraries installed on the system. If a crate, for example, links in C code that wants to use the system sanitizer and the Rust code doesn't use sanitizers at all, then using `cargo` may accidentally pull in the Rust-installed sanitizer library due to a conflict in names. This change is intended to be entirely transparent for Rust users of sanitizers, it should only hopefully improve our story with other users! Closes #54134
2018-10-01allow use of ./x.py help <cmd> ...Collins Abitekaniza-0/+5
2018-09-29Rename sanitizer runtime libraries on OSXAlex Crichton-1/+1
Currently we ship sanitizer libraries as they're built, but these names unfortunately conflict with the names of the sanitizer libraries installed on the system. If a crate, for example, links in C code that wants to use the system sanitizer and the Rust code doesn't use sanitizers at all, then using `cargo` may accidentally pull in the Rust-installed sanitizer library due to a conflict in names. This change is intended to be entirely transparent for Rust users of sanitizers, it should only hopefully improve our story with other users! Closes #54134
2018-09-28Add enable-missing-tools optionChristian Poveda-5/+16
2018-09-27Bump to 1.31.0 and bootstrap from 1.30 betaJosh Stone-1/+1
2018-09-25Improvements to finding LLVM's FileCheckTom Tromey-2/+33
This patch adds a few improvements to how the build system finds LLVM's FileCheck program. * On Fedora, the system LLVM installs FileCheck in the "llvm" subdirectory of the LLVM libdir. This patch teaches the build system to look there. * This adds a configure option to specify which llvm-config executable to use. This is handy on systems that can parallel install multiple versions of LLVM; for example I can now: ./configure --llvm-config=/bin/llvm-config-5.0-64 ... to build against LLVM 5, rather than whatever the default llvm-config might be. * Finally, this adds a configure- and config.toml- option to set the path to FileCheck. This is handy when building against an LLVM where FileCheck was not installed. This happens on compatibility installs of LLVM on Fedora.
2018-09-22Rollup merge of #54323 - Keruspe:rustc-color, r=Mark-SimulacrumPietro Albini-42/+1
rustbuild: drop color handling Let cargo handle that for us Fixes #54322 Needs a beta backport
2018-09-21Run the newly `ui`-ified run-pass tests under `compare-mode=nll` as well.Felix S. Klock II-2/+3
Fix #53764.
2018-09-18rustbuild: drop color handlingMarc-Antoine Perennou-42/+1
Let cargo handle that for us Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2018-09-17Auto merge of #52036 - collin5:b50509-2, r=collin5bors-109/+90
Clean up dependency tracking in Rustbuild [2/2] Make `clear_if_dirty` calls in `Builder::cargo` with stamp dependencies for the given Mode. Continuation of #50904 Ref issue #50509 r? @Mark-Simulacrum
2018-09-17refactor Builder::cargo, clean deps for cmd!=testCollins Abitekaniza-6/+2
2018-09-14Rollup merge of #53829 - alexcrichton:release-debuginfo, r=michaelwoeristerkennytm-12/+54
Add rustc SHA to released DWARF debuginfo This commit updates the debuginfo that is encoded in all of our released artifacts by default. Currently it has paths like `/checkout/src/...` but these are a little inconsistent and have changed over time. This commit instead attempts to actually define the file paths in our debuginfo to be consistent between releases. All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git sha of the released compiler. Sub-paths are all paths into the git repo at that `$sha`.
2018-09-12Add check build dependenciesMark Rousskov-6/+6
2018-09-12Do not print checking messages in dry run modeMark Rousskov-3/+3
2018-09-12remove struct CleanToolsCollins Abitekaniza-53/+22
2018-09-12nit: rearrange and make match exhaustiveCollins Abitekaniza-5/+8
also indicate difference between out_dir and my_out
2018-09-12clear_if_dirty with self.rustc(compiler) for Mode::RustcCollins Abitekaniza-0/+1
2018-09-12use stage 1 compiler only for stampsCollins Abitekaniza-8/+8
2018-09-12clear_if_dirty in Builder::cargo with passed modeCollins Abitekaniza-52/+64
2018-09-12Rollup merge of #54073 - behnam:docs-1, r=frewsxcvkennytm-9/+9
docs: Use dollar sign for all bash prompts Making it consistent across the board, as most of them already use `$`. Also split one continues bash run into two, to make it easier see different runs: one with warning and another with error.
2018-09-10Add rustc SHA to released DWARF debuginfoAlex Crichton-12/+54
This commit updates the debuginfo that is encoded in all of our released artifacts by default. Currently it has paths like `/checkout/src/...` but these are a little inconsistent and have changed over time. This commit instead attempts to actually define the file paths in our debuginfo to be consistent between releases. All debuginfo paths are now intended to be `/rustc/$sha` where `$sha` is the git sha of the released compiler. Sub-paths are all paths into the git repo at that `$sha`.
2018-09-09merge cargo changes done by https://github.com/rust-lang/rust/pull/53935/Eric Huss-0/+2
(done by matthiaskrgr, but I authored ehuss)
2018-09-08docs: Use dollar sign for all bash promptsBehnam Esfahbod-9/+9
Making it consistent across the board, as most of them already use `$`. Also split one continues bash run into two, to make it easier see different runs: one with warning and another with error.
2018-09-08Rollup merge of #54050 - GabrielMajeri:fix-build-with-nightly, r=alexcrichtonkennytm-1/+1
Update `petgraph` dependency to 0.4.13 to fix build with nightly I wanted to build Rust from source using a local nightly compiler, but I was unable to get `bootstrap` to compile due to a naming conflict with the `find_map` function. This PR updates the `petgraph` dependency of `bootstrap` to 0.4.13, fixing the issue.
2018-09-08Rollup merge of #53987 - Keruspe:llvm-suffix, r=alexcrichtonkennytm-0/+7
rustbuild: allow configuring llvm version suffix Fixes #53852 by allowing user to install different versions of rust to the same sysroot.
2018-09-08Rollup merge of #53973 - tromey:prefer-rust-enabled-lldb, r=alexcrichtonkennytm-3/+4
Have rust-lldb look for the rust-enabled lldb 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 rust-lldb to look in the sysroot and use the lldb found there, if any. See issue #48168
2018-09-08Update `petgraph` dependency to 0.4.13Gabriel Majeri-1/+1
This fixes building `bootstrap` using a local Rust nightly.
2018-09-07rustbuild: allow configuring llvm version suffixMarc-Antoine Perennou-0/+7
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
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-07Rollup merge of #54023 - matthiaskrgr:clippy, r=oli-obkkennytm-2/+10
update clippy submodule updates to cafef7b576203f166add9ed143979d9775c25219
2018-09-07Rollup merge of #53967 - froydnj:cmake-python-executable, r=alexcrichtonkennytm-0/+4
propagate build.python into cmake If a suitable value of Python is not on `PATH`, one can still invoke x.py manually, which propagates `BOOTSTRAP_PYTHON` into the bootstrap environment. But building LLVM will abort with error messages about not being able to find Python, and instructions to set `PYTHON_EXECUTABLE`, because nothing is done with `BOOTSTRAP_PYTHON` when invoking cmake. Setting `build.python` in config.toml had no effect in this scenario, either To fix this, let's provide `PYTHON_EXECUTABLE` when invoking cmake; for the "normal" case of Python in `PATH`, this doesn't alter any behavior. For more unusual cases, however, this ensures cmake finds Python properly. (This change also ensures there are no differences between what bootstrap is using, and what cmake uses, which may be useful for consistency's sake.)
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-09-05propagate build.python into cmakeNathan Froyd-0/+4
If a suitable value of Python is not on PATH, one can still invoke x.py manually, which propagates BOOTSTRAP_PYTHON into the bootstrap environment. But building LLVM will abort with error messages about not being able to find Python, and instructions to set PYTHON_EXECUTABLE, because nothing is done with BOOTSTRAP_PYTHON when invoking cmake. Setting build.python in config.toml had no effect in this scenario, either To fix this, let's provide PYTHON_EXECUTABLE when invoking cmake; for the "normal" case of Python in PATH, this doesn't alter any behavior. For more unusual cases, however, this ensures cmake finds Python properly. (This change also ensures there are no differences between what bootstrap is using, and what cmake uses, which may be useful for consistency's sake.)
2018-09-01Rollup merge of #53076 - QuietMisdreavus:cfg-rustdoc, r=GuillaumeGomezkennytm-0/+2
set cfg(rustdoc) when rustdoc is running on a crate When using `#[doc(cfg)]` to document platform-specific items, it's a little cumbersome to get all the platforms' items to appear all at once. For example, the standard library adds `--cfg dox` to rustdoc's command line whenever it builds docs, and the documentation for `#![feature(doc_cfg)]` suggests using a Cargo feature to approximate the same thing. This is a little awkward, because you always need to remember to set `--features dox` whenever you build documentation. This PR proposes making rustdoc set `#[cfg(rustdoc)]` whenever it runs on a crate, to provide an officially-sanctioned version of this that is set automatically. This way, there's a standardized way to declare that a certain version of an item is specifically when building docs. To try to prevent the spread of this feature from happening too quickly, this PR also restricts the use of this flag to whenever `#![feature(doc_cfg)]` is active. I'm sure there are other uses for this, but right now i'm tying it to this feature. (If it makes more sense to give this its own feature, i can easily do that.)
2018-09-01Auto merge of #53611 - alexcrichton:update-llvm, r=nikomatsakisbors-0/+1
Update LLVM submodule This commit updates the LLVM submodule to the current trunk of LLVM itself. This brings a few notable improvements for the wasm target: * Support for wasm atomic instructions is greatly improved * Renamed memory wasm intrinsics are fully supported * LLD has fixed a quadratic execution bug with large numbers of relocations in wasm files. The compiler-rt submodule has been updated in tandem as well.