about summary refs log tree commit diff
path: root/src/bootstrap/lib.rs
AgeCommit message (Collapse)AuthorLines
2018-11-06Auto merge of #55106 - petrhosek:fuchsia-lld, r=alexcrichtonbors-1/+2
Use lld directly for Fuchsia target Fuchsia already uses lld as the default linker, so there's no reason to always invoke it through Clang, instead we can simply invoke lld directly and pass the set of flags that matches Clang.
2018-11-05Use lld directly for Fuchsia targetPetr Hosek-1/+2
Fuchsia already uses lld as the default linker, so there's no reason to always invoke it through Clang, instead we can simply invoke lld directly and pass the set of flags that matches Clang.
2018-11-02Use `jemalloc-sys` on Linux and OSX compilersAlex Crichton-1/+5
This commit adds opt-in support to the compiler to link to `jemalloc` in the compiler. When activated the compiler will depend on `jemalloc-sys`, instruct jemalloc to unprefix its symbols, and then link to it. The feature is activated by default on Linux/OSX compilers for x86_64/i686 platforms, and it's not enabled anywhere else for now. We may be able to opt-in other platforms in the future! Also note that the opt-in only happens on CI, it's otherwise unconditionally turned off by default. Closes #36963
2018-11-02Remove all jemalloc-related contentAlex Crichton-12/+2
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-10-26Rollup merge of #55391 - matthiaskrgr:bootstrap_cleanup, r=oli-obkkennytm-4/+4
bootstrap: clean up a few clippy findings remove useless format!()s remove redundant field names in a few struct initializations pass slice instead of a vector to a function use is_empty() instead of comparisons to .len() No functional change intended.
2018-10-26bootstrap: clean up a few clippy findingsMatthias Krüger-4/+4
remove useless format!()s remove redundant field names in a few struct initializations pass slice instead of a vector to a function use is_empty() instead of comparisons to .len() No functional change intended.
2018-10-25rustbuild: fix remap-debuginfo when building a releaseMarc-Antoine Perennou-1/+1
Fallback to the release number as we can't get the git commit sha as we're not in a git repository. Fixes #55341 Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2018-10-20Update Cargo, build curl/OpenSSL statically via featuresAlex Crichton-19/+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-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-08Run debuginfo tests against rust-enabled lldb, when possibleTom Tromey-6/+0
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-09-25Improvements to finding LLVM's FileCheckTom Tromey-2/+21
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-17Auto merge of #52036 - collin5:b50509-2, r=collin5bors-0/+2
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-12remove struct CleanToolsCollins Abitekaniza-0/+2
2018-09-10Add rustc SHA to released DWARF debuginfoAlex Crichton-1/+31
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-08-30Rollup merge of #53740 - japaric:readobj, r=alexcrichtonPietro Albini-0/+1
add llvm-readobj to llvm-tools-preview Similar to readelf but supports more object formats (it seems). Particularly useful to inspect in detail sections (e.g. their flags) and symbols (e.g. their types). r? @alexcrichton cc @dvc94ch
2018-08-29bootstrap: Link LLVM tools dynamically in order to save time in ThinLTO builds.Michael Woerister-0/+4
2018-08-28sortJorge Aparicio-1/+1
2018-08-27add llvm-readobj to llvm-tools-previewJorge Aparicio-0/+1
2018-08-20bootstrap: Allow to specify ranlib tool used when compiling C++ code.Michael Woerister-0/+7
2018-08-14Add lldb to the buildTom Tromey-13/+30
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-08-06Building librustc_codegen_llvm in a separate directoryMark Rousskov-1/+1
This allows clearing it out and building it separately from the compiler. Since it's essentially a different and separate crate this makes sense to do, each cargo invocation should generally happen in its own directory.
2018-07-14Rollup merge of #51962 - crlf0710:patch-2, r=alexcrichtonkennytm-1/+2
Provide llvm-strip in llvm-tools component Shipping this tool gives people reliable way to reduce the generated executable size. I'm not sure if this strip tool is available from the llvm version current rust is built on. But let's take a look. @japaric
2018-07-10Restore #![deny(warnings)]ljedrz-0/+1
2018-07-10Deny bare trait objects in `src/bootstrap`.ljedrz-3/+3
2018-07-06Auto merge of #51757 - nielx:fix/haiku-fixes, r=nagisabors-2/+2
Haiku: several smaller fixes to build and run rust on Haiku This PR combines three small patches that help Rust build and run on the Haiku platform. These patches do not intend to impact other platforms.
2018-07-06Rollup merge of #52080 - oli-obk:dep_dedup_diagnostics, r=kennytmkennytm-0/+1
Improve dependency deduplication diagnostics r? @kennytm this is obviously hard to test :laughing: cc #52072
2018-07-05Address review commentsOliver Schneider-0/+1
2018-07-05Update Cargo.lock dependenciesAlex Crichton-1/+3
Run `cargo update` and let's see how far we can get!
2018-07-03Compile stage0 tools with the raw bootstrap compilerAlex Crichton-6/+17
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-01Provide llvm-strip in llvm-tools componentCrLF0710-1/+2
Shipping this tool gives people reliable way to reduce the generated executable size. I'm not sure if this strip tool is available from the llvm version current rust is built on. But let's take a look. @japaric
2018-07-01Did you mean to block nightlies on clippy?Oliver Schneider-0/+8
2018-06-24Haiku: there is no setpriority on this platform.Niels Sascha Reedijk-2/+2
2018-06-23build: add llvm-tools to manifestBrad Campbell-17/+4
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-0/+29
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-08rustbuild: generate full list of dependencies for metadataest31-1/+2
Previously, we didn't send --features to our cargo metadata invocations, and thus missed some dependencies that we enable through the --features mechanism.
2018-06-04fix tidyJorge Aparicio-1/+1
2018-06-03use rustc version as llvm-tools versionJorge Aparicio-15/+18
2018-06-03make a llvm-tools rustup componentJorge Aparicio-0/+18
2018-06-03document what each tools doesJorge Aparicio-1/+5
2018-06-03also ship llvm-profdataJorge Aparicio-1/+3
2018-06-03ship LLVM tools with the toolchainJorge Aparicio-0/+2
2018-06-03impl is_tool on Mode enumCollins Abitekaniza-0/+9
make is_tool inherent prop of mode fix errors from rebase resolve issues from review
2018-06-03refactor, make requested changesCollins Abitekaniza-5/+4
2018-06-03refactor Mode enumCollins Abitekaniza-10/+17
2018-05-22Fix FileCheck findingJohn Kåre Alsaker-5/+13
2018-05-06s/DocTestsOption/DocTests/gkennytm-2/+2
2018-05-06Added test case.kennytm-1/+1
2018-05-06Added `./x.py test --no-doc` option.kennytm-1/+11
This enables `./x.py test --stage 0 src/libstd --no-doc` and ensures the stage2-rustc and rustdoc need to be built.
2018-04-07Auto merge of #49661 - alexcrichton:bump-bootstrap, r=nikomatsakisbors-3/+2
Bump the bootstrap compiler to 1.26.0 beta Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!
2018-04-05Bump the bootstrap compiler to 1.26.0 betaAlex Crichton-3/+2
Holy cow that's a lot of `cfg(stage0)` removed and a lot of new stable language features!