summary refs log tree commit diff
path: root/src/bootstrap/lib.rs
AgeCommit message (Collapse)AuthorLines
2016-12-09Create tar balls of save-analysis-api metadata for the standard libraries as ↵Nick Cameron-0/+4
part of `make dist`.
2016-12-07mk: Switch rustbuild to the default build systemAlex Crichton-5/+91
This commit switches the default build system for Rust from the makefiles to rustbuild. The rustbuild build system has been in development for almost a year now and has become quite mature over time. This commit is an implementation of the proposal on [internals] which slates deletion of the makefiles on 2016-01-02. [internals]: https://internals.rust-lang.org/t/proposal-for-promoting-rustbuild-to-official-status/4368 This commit also updates various documentation in `README.md`, `CONTRIBUTING.md`, `src/bootstrap/README.md`, and throughout the source code of rustbuild itself. Closes #37858
2016-11-30Update the bootstrap compilerAlex Crichton-14/+2
Now that we've got a beta build, let's use it!
2016-11-26Auto merge of #38008 - bluss:rustbuild-benches, r=alexcrichtonbors-1/+3
Add rustbuild command `bench` Add command bench to rustbuild, so that `./x.py bench <path>` can compile and run benchmarks. `./x.py bench --stage 1 src/libcollections` and `./x.py bench --stage 1 src/libstd` should both compile well. Just `./x.py bench` runs all benchmarks for the libstd crates. Fixes #37897
2016-11-25rustbuild: Add bench subcommandUlrik Sverdrup-1/+3
Add command `./x.py bench`; use `./x.py bench --help -v` to list all available benchmark targets.
2016-11-23std: make compilation of libpanic_unwind optional via a Cargo featureJorge Aparicio-1/+1
with this feature disabled, you can (Cargo) compile std with "panic=abort" rustbuild will build std with this feature enabled, to maintain the status quo fixes #37252
2016-11-14rustbuild: Allow configuration of python interpreterAlex Crichton-0/+5
Add a configuration key to `config.toml`, read it from `./configure`, and add auto-detection if none of those were specified. Closes #35760
2016-11-08rustbuild: Tweak for vendored dependenciesAlex Crichton-0/+3
A few changes are included here: * The `winapi` and `url` dependencies were dropped. The source code for these projects is pretty weighty, and we're about to vendor them, so let's not commit to that intake just yet. If necessary we can vendor them later but for now it shouldn't be necessary. * The `--frozen` flag is now always passed to Cargo, obviating the need for tidy's `cargo_lock` check. * Tidy was updated to not check the vendor directory Closes #34687
2016-11-05Merge branch 'gdb-next-gen' of https://github.com/TimNN/rust into rollupAlex Crichton-2/+0
2016-11-05Merge branch 'new-rustbuild' into rollupAlex Crichton-245/+26
2016-11-03Set RUSTC_BOOTSTRAP to some value.Brian Anderson-1/+1
Environment variables on windows can't be empty.
2016-11-02rustbuild: Rewrite user-facing interfaceAlex Crichton-245/+26
This commit is a rewrite of the user-facing interface to the rustbuild build system. The intention here is to make it much easier to compile/test the project without having to remember weird rule names and such. An overall view of the new interface is: # build everything ./x.py build # document everyting ./x.py doc # test everything ./x.py test # test libstd ./x.py test src/libstd # build libcore stage0 ./x.py build src/libcore --stage 0 # run stage1 run-pass tests ./x.py test src/test/run-pass --stage 1 The `src/bootstrap/bootstrap.py` script is now aliased as a top-level `x.py` script. This `x` was chosen to be both short and easily tab-completable (no collisions in that namespace!). The build system now accepts a "subcommand" of what to do next, the main ones being build/doc/test. Each subcommand then receives an optional list of arguments. These arguments are paths in the source repo of what to work with. That is, if you want to test a directory, you just pass that directory as an argument. The purpose of this rewrite is to do away with all of the arcane renames like "rpass" is the "run-pass" suite, "cfail" is the "compile-fail" suite, etc. By simply working with directories and files it's much more intuitive of how to run a test (just pass it as an argument). The rustbuild step/dependency management was also rewritten along the way to make this easy to work with and define, but that's largely just a refactoring of what was there before. The *intention* is that this support is extended for arbitrary files (e.g. `src/test/run-pass/my-test-case.rs`), but that isn't quite implemented just yet. Instead directories work for now but we can follow up with stricter path filtering logic to plumb through all the arguments.
2016-10-31detect gdb version & rust support in compiletestTim Neumann-2/+0
2016-10-20Auto merge of #37280 - alexcrichton:debuginfo, r=brsonbors-0/+1
Enable line number debuginfo in releases This commit enables by default passing the `-C debuginfo=1` argument to the compiler for the stable, beta, and nightly release channels. A new configure option was also added, `--enable-debuginfo-lines`, to enable this behavior in developer builds as well. Closes #36452
2016-10-19Enable line number debuginfo in releasesAlex Crichton-0/+1
This commit enables by default passing the `-C debuginfo=1` argument to the compiler for the stable, beta, and nightly release channels. A new configure option was also added, `--enable-debuginfo-lines`, to enable this behavior in developer builds as well. Closes #36452
2016-10-19Detect local-rebuild by just the MAJOR.MINOR versionJosh Stone-3/+3
A new point-release shouldn't change any language semantics, so a local stage0 that matches MAJOR.MINOR version should still be considered a local-rebuild as far as `--cfg stageN` features go. e.g. `1.14.0` should be considered a local-rebuild for any `1.14.X`. (Bootstrap keys used to be an issue too, until #37265.)
2016-10-19Allow bootstrapping without a key. Fixes #36548Brian Anderson-11/+6
This will make it easier for packagers to bootstrap rustc when they happen to have a bootstrap compiler with a slightly different version number. It's not ok for anything other than the build system to set this environment variable.
2016-10-13rustbuild: Less panics in musl_rootAlex Crichton-1/+2
Don't panic if the target wasn't configured.
2016-10-08rustbuild: Optimize build times slightlyAlex Crichton-1/+0
As the entry point for building the Rust compiler, a good user experience hinges on this compiling quickly to get to the meat of the problem. To that end use `#[cfg]`-specific dependencies to avoid building Windows crates on Unix and drop the `regex` crate for now which was easily replacable with some string searching.
2016-10-05rustbuild: Add install target. #34675Ahmed Charles-0/+3
It just prints to the screen currently.
2016-10-01Auto merge of #36853 - TimNN:rustbuild-out-of-tree, r=alexcrichtonbors-7/+12
fix out-of-tree rustbuild See https://github.com/rust-lang/rust/pull/36456#issuecomment-250589906 r? @alexcrichton
2016-09-30TidyBrian Anderson-1/+2
2016-09-30Support emscripten in rustbuildBrian Anderson-1/+1
2016-09-30fix out-of-tree rustbuildTim Neumann-7/+12
2016-09-29Auto merge of #36456 - alexcrichton:rustbuild-dont-use-c, r=jonathandturnerbors-4/+12
rustbuild: Use current_dir instead of -C Apparently some versions of git don't support the `-C` flag, so let's use the guaranteed-to-work `current_dir` function.
2016-09-28rustbuild: Use current_dir instead of -CAlex Crichton-4/+12
Apparently some versions of git don't support the `-C` flag, so let's use the guaranteed-to-work `current_dir` function.
2016-09-27Remove requirement to use 10.7 (fixes macOS)Jonathan Turner-7/+0
2016-09-26Rollup merge of #36663 - brson:build-plan, r=alexcrichtonJonathan Turner-1/+8
rustbuild: Print out all build steps when --verbose These helped me debug some problems with the asmjs target. It's just vomiting debug representations, so not the prettiest stuff. r? @alexcrichton
2016-09-25Auto merge of #36442 - alexcrichton:rustbuild-cross, r=brsonbors-1/+5
rustbuild: Nicer error for host builds of targets If a triple is configured only as a target, not a host, then trying to build that triple with host artifacts would cause a panic. Fail a little nicer instead. Closes #36268
2016-09-23rustbuild: Print out all build steps when --verboseBrian Anderson-1/+8
2016-09-15Auto merge of #36439 - alexcrichton:fix-rustbuild, r=japaricbors-0/+2
rustbuild: Fix dependency tracking with new Cargo The recent Cargo update changed filenames, which broke a lot of incremental rustbuild builds. What it thought were the output files were indeed no longer the output files! (wreaking havoc). This commit updates this to stop guessing filenames of Cargo and just manage stamp files instead.
2016-09-13Auto merge of #36041 - ahmedcharles:try, r=nrcbors-1/+1
Replace try! with ?.
2016-09-12rustbuild: Nicer error for host builds of targetsAlex Crichton-1/+5
If a triple is configured only as a target, not a host, then trying to build that triple with host artifacts would cause a panic. Fail a little nicer instead. Closes #36268
2016-09-12rustbuild: Fix dependency tracking with new CargoAlex Crichton-0/+2
The recent Cargo update changed filenames, which broke a lot of incremental rustbuild builds. What it thought were the output files were indeed no longer the output files! (wreaking havoc). This commit updates this to stop guessing filenames of Cargo and just manage stamp files instead.
2016-09-12crate-ify compiler-rt into compiler-builtinsJorge Aparicio-11/+0
libcompiler-rt.a is dead, long live libcompiler-builtins.rlib This commit moves the logic that used to build libcompiler-rt.a into a compiler-builtins crate on top of the core crate and below the std crate. This new crate still compiles the compiler-rt instrinsics using gcc-rs but produces an .rlib instead of a static library. Also, with this commit rustc no longer passes -lcompiler-rt to the linker. This effectively makes the "no-compiler-rt" field of target specifications a no-op. Users of `no_std` will have to explicitly add the compiler-builtins crate to their crate dependency graph *if* they need the compiler-rt intrinsics. Users of the `std` have to do nothing extra as the std crate depends on compiler-builtins. Finally, this a step towards lazy compilation of std with Cargo as the compiler-rt intrinsics can now be built by Cargo instead of having to be supplied by the user by some other method. closes #34400
2016-09-11Fix typo in bootstrap/lib.rs.Ahmed Charles-1/+1
2016-09-06add utility musl_root method, update config.toml.exampleJorge Aparicio-0/+7
2016-08-29fix git submodule status checkking6cong-1/+1
2016-08-28Auto merge of #36062 - japaric:smarter-submodules, r=alexcrichtonbors-11/+79
rustbuild: smarter `git submodule`-ing With this commit, if one bootstraps rust against system llvm then the src/llvm submodule is not updated/checked-out. This saves considerable network bandwith when starting from a fresh clone of rust-lang/rust as the llvm submodule is never cloned. cc #30107 r? @alexcrichton cc @petevine ~~We could also avoid updating the jemalloc submodule if --disable-jemalloc is used. It just hasn't been implemented.~~ Done This probably doesn't handle "recursive" submodules correctly but I think we don't have any of those right now. I'm still testing a bootstrap but already confirmed that the llvm submodule doesn't get updated when `--llvm-root` is passed to `configure`.
2016-08-28fix tidy errorJorge Aparicio-1/+1
2016-08-27don't update the src/jemalloc submodule is jemalloc has been disabledJorge Aparicio-1/+8
i.e. via the --disable-jemalloc configure flag
2016-08-27don't run codegen tests when they have been disabledJorge Aparicio-2/+4
2016-08-27rustbuild: smarter `git submodule`-ingJorge Aparicio-11/+72
With this commit, if one bootstraps rust against system llvm then the src/llvm submodule is not updated/checked-out. This saves considerable network bandwith when starting from a fresh clone of rust-lang/rust as the llvm submodule is never cloned. cc #30107
2016-08-27Fixup rustbuild on #35124Manish Goregaokar-4/+0
2016-08-23Update cargo bootstrap rev and add fix for cargo#3005Brian Anderson-0/+4
2016-08-14Auto merge of #35666 - eddyb:rollup, r=eddybbors-2/+7
Rollup of 30 pull requests - Successful merges: #34941, #35392, #35444, #35447, #35491, #35533, #35539, #35558, #35573, #35574, #35577, #35586, #35588, #35594, #35596, #35597, #35598, #35606, #35611, #35615, #35616, #35620, #35622, #35640, #35643, #35644, #35646, #35647, #35648, #35661 - Failed merges: #35395, #35415
2016-08-14Rollup merge of #35577 - japaric:relax, r=alexcrichtonEduard-Mihai Burtescu-2/+7
add -mrelax-relocations=no to i686-musl and i586-gnu I've been experiencing #34978 with these two targets. This applies the hack in #35178 to these targets as well. r? @alexcrichton
2016-08-12Produce source package in rust-installer format in addition to vanilla tarballDiggory Blake-0/+2
Copy source files from rust code Add missing wildcard Remove unused function Remove use of tar --transform
2016-08-11fix matchJorge Aparicio-1/+2
2016-08-10add -mrelax-relocations=no to i686-musl and i586-gnuJorge Aparicio-2/+6
I've been experiencing #34978 with these two targets. This applies the hack in #35178 to these targets as well.