summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2016-11-15rustbuild: Tweak default rule inclusionAlex Crichton-2/+4
If a rule is flagged with `default(true)` then the pseudo-rule `default:foo` will include that. If a rule is also flagged with `.host(true)`, however, then the rule shouldn't be included for targets that aren't in the host array. This adds a filter to ensure we don't pull in host rules for targets by accident.
2016-11-11bootstrap: rust-docs is a default packageBrian Anderson-0/+1
This will cause it to be built as part of `make dist`.
2016-11-07rustbuild: support MIPS host buildsWang Xuerui-0/+16
There is a *little* code duplication, but primarily for sake of "match exhaustiveness". Let's blame Linux/MIPS for not exposing endianness explicitly in `uname -m` (that's user-space interface and as such is frozen). Currently the build won't work as we have to wait for a new stage0 for the MIPS host compilers, but this paves the way to self-hosted Rust on MIPS. The cross-compiled MIPS binaries are confirmed to work on the Loongson 3A2000 (MIPS64r2-compatible) so we have plenty of confidence that they'll work on other MIPS platforms too, as Linux/MIPS user-space ABI is consistent across machines of the same bitness.
2016-11-05Only test docs and such for the hostAlex Crichton-5/+14
2016-11-05Merge branch 'gdb-next-gen' of https://github.com/TimNN/rust into rollupAlex Crichton-20/+52
2016-11-05Fix tests from the rollupAlex Crichton-6/+64
2016-11-05Merge branch 'new-rustbuild' into rollupAlex Crichton-969/+1107
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-969/+1107
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-31rustbuild+configure: convert unix style paths on windowsTim Neumann-14/+37
2016-10-31rustbuild+configure: improve bin/exe joiningTim Neumann-3/+23
2016-10-31detect gdb version & rust support in compiletestTim Neumann-5/+17
2016-10-30Use quieter test output when running tests on Travis CI.Corey Farwell-1/+18
Fixes https://github.com/rust-lang/rust/issues/36788.
2016-10-22Rollup merge of #37209 - srinivasreddy:bootstrap_bin, r=nrcGuillaume Gomez-13/+16
run rustfmt on bootstrap/bin folder
2016-10-20Auto merge of #37280 - alexcrichton:debuginfo, r=brsonbors-0/+10
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/+10
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-19Rollup merge of #37265 - brson:bootstrap, r=alexcrichtonEduard-Mihai Burtescu-14/+8
Allow bootstrapping without a key. Fixes #36548 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. r? @alexcrichton
2016-10-19Allow bootstrapping without a key. Fixes #36548Brian Anderson-14/+8
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-16run rustfmt on bootstrap/bin folderSrinivas Reddy Thatiparthy-13/+16
2016-10-14Add AppVeyor configuration to the repoAlex Crichton-9/+21
We hope to move to AppVeyor in the near future off of Buildbot + EC2. This adds an `appveyor.yml` configuration file which is ready to run builds on the auto branch. This is also accompanied with a few minor fixes to the build system and such to accomodate AppVeyor. The intention is that we're not switching over to AppVeyor entirely just yet, but rather we'll watch the builds for a week or so. If everything checks out then we'll start gating on AppVeyor instead of Buildbot!
2016-10-13rustbuild: Less panics in musl_rootAlex Crichton-1/+2
Don't panic if the target wasn't configured.
2016-10-11Auto merge of #36983 - alexcrichton:configure-multiple-musl, r=brsonbors-0/+30
configure: Add options for separate musl roots This allows using the `./configure` script to enable rustbuild to compile multiple musl targets at once. We'll hopefully use this soon on our bots to produce a bunch of targets.
2016-10-08rustbuild: Optimize build times slightlyAlex Crichton-46/+27
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-08Auto merge of #37039 - Manishearth:rollup, r=Manishearthbors-212/+75
Rollup of 6 pull requests - Successful merges: #36937, #37016, #37028, #37029, #37031, #37034 - Failed merges: #37027
2016-10-08Rollup merge of #37028 - alexcrichton:fix-deps, r=japaricManish Goregaokar-1/+1
rustbuild: Fix dependencies of check-docs step Some of the doc tests depend on `extern crate test`, so depend on libtest instead of libstd here.
2016-10-07rustbuild: Use `cargo metadata` to learn about DAGAlex Crichton-61/+70
This updates the commit to use workspaces to use `cargo metadata` instead of hardcoded lists about what to test. This should help us be resilient to updates in the future on behalf of the crate DAG and minimize the amount of files that need to be touched.
2016-10-07rustbuild: Fix dependencies of check-docs stepAlex Crichton-1/+1
Some of the doc tests depend on `extern crate test`, so depend on libtest instead of libstd here.
2016-10-07Use workspaces and switch to a single Cargo.lock.Ahmed Charles-189/+43
This involves hacking the code used to run cargo test on various packages, because it reads Cargo.lock to determine which packages should be tested. This change implements a blacklist, since that will catch new crates when they are added in the future.
2016-10-06Prevent accidentally running 'make install' as sudo.Ahmed Charles-0/+4
2016-10-06Auto merge of #35641 - ahmedcharles:install, r=alexcrichtonbors-7/+91
rustbuild: Add install target. #34675 It just prints to the screen currently. r? @alexcrichton I'm working on the next commit to actually have it install.
2016-10-05Add support for docdir, libdir and mandir.Ahmed Charles-5/+30
2016-10-05Install docs, std and rustc using results from dist.Ahmed Charles-6/+32
2016-10-05rustbuild: Add install target. #34675Ahmed Charles-4/+37
It just prints to the screen currently.
2016-10-05configure: Add options for separate musl rootsAlex Crichton-0/+30
This allows using the `./configure` script to enable rustbuild to compile multiple musl targets at once. We'll hopefully use this soon on our bots to produce a bunch of targets.
2016-10-04rustbuild: Fix panic message when musl-root not setNick Stevens-2/+2
The previous panic message delivered when a musl target was specified but musl-root was not specified incorrectly instructed the user to add the musl-root key to the "build" section of config.toml. The key actually needs to be added to the "rust" section.
2016-10-04rustbuild: Fix bug preventing per-target musl-rootNick Stevens-3/+5
In #36292, support was added to target musl libc for ARM targets using rustbuild. Specifically, that change allowed the addition of per-target "musl-root" options in the rustbuild config.toml so that multiple targets depending on musl could be built. However, that implementation contained a couple of omissions: the musl-root option was added to the config, but was never added to the TOML parsing, and therefore was not actually being loaded from config.toml. This commit rectifies that and allows successful building of musl-based ARM targets.
2016-10-03Auto merge of #36847 - alexcrichton:rustc-macro-doc, r=nrcbors-1/+1
rustdoc: Fix documenting rustc-macro crates This commit adds a "hack" to the session to track whether we're a rustdoc session or not. If we're rustdoc then we skip the expansion to add the rustc-macro infrastructure. Closes #36820
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-30Don't build any native compiler-builtin components for emscriptenBrian Anderson-0/+7
2016-09-30Build a dummy alloc_jemalloc crate on platforms that don't support itBrian Anderson-9/+8
This is a hack to support building targets that don't support jemalloc alongside hosts that do. The jemalloc build is controlled by a feature of the std crate, and if that feature changes between targets, it invalidates the fingerprint of std's build script (this is a cargo bug); so we must ensure that the feature set used by std is the same across all targets, which means we have to build the alloc_jemalloc crate for targets like emscripten, even if we don't use it.
2016-09-30Cleanup bootstrapBrian Anderson-8/+8
2016-09-30rustbuild: Only build 'dist' when building the hostBrian Anderson-1/+3
Doing this step for the target results in the build system trying to build rustc for asmjs, which doesn't work.
2016-09-30Update bootstrap and compiletest to use the detected nodejsBrian Anderson-1/+6
2016-09-30TidyBrian Anderson-1/+2
2016-09-30Improve bootstrap crate testing for emscriptenBrian Anderson-3/+14
2016-09-30Preliminary wasm32 supportBrian Anderson-6/+6
2016-09-30Adapting bootstrap to run tests on asmjs.Ross Schulman-1/+22
2016-09-30Update gcc-rs for emscriptenBrian Anderson-24/+24
2016-09-30Support emscripten in rustbuildBrian Anderson-1/+1