about summary refs log tree commit diff
path: root/src/bootstrap
AgeCommit message (Collapse)AuthorLines
2017-05-18Add metadata suffix, close rust-lang/cargo#4028Tatsuyuki Ishi-6/+41
2017-05-17Auto merge of #42041 - Keruspe:master, r=alexcrichtonbors-2/+2
rustbuild: fix bash completion installation dir
2017-05-16Add an option to run rustbuild on low priorityJohn Kåre Alsaker-4/+40
This is a resurrection of #40776, combining their Windows setup with an additional setup on Unix to set the program group's niceness to +10 (low-but-not-lowest priority) when the `low_priority` option is on.
2017-05-16rustbuild: fix bash completion installation dirMarc-Antoine Perennou-2/+2
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-16rustbuild: pass sysconfdir to install_shMarc-Antoine Perennou-6/+17
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-16rustbuild: allow configuring sysconfdirMarc-Antoine Perennou-0/+10
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-16rustbuild: pass bindir to install_shMarc-Antoine Perennou-7/+12
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-16rustbuild: allow configuring bindirMarc-Antoine Perennou-5/+14
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-05-14Don't use sanitize_sh with rust-installerJosh Stone-41/+40
There's no shell interpreting the file paths under the new Rusty rust-installer, so we don't need to use `sanitize_sh` for it. Plus, the drive-letter transformation is actually harmful for the now-native Windows rust-installer to understand those paths.
2017-05-14Force tool-rust-installer deps to build-onlyJosh Stone-9/+17
2017-05-14Use "rust-installer tarball" to create rustc-src tooJosh Stone-4/+8
This gives us an extra rustc-src.tar.xz, which is 33% smaller than the .tar.gz!
2017-05-14Update to the oxidized rust-installerJosh Stone-24/+35
2017-05-14Rewrite make-win-dist.py in RustWesley Wiser-17/+136
Fixes #41568
2017-05-13Pass static crt to llvm cmake configurationLiran Ringel-2/+3
2017-05-13Auto merge of #41965 - Mark-Simulacrum:rollup, r=Mark-Simulacrumbors-1/+21
Rollup of 15 pull requests - Successful merges: #41820, #41860, #41876, #41896, #41912, #41916, #41918, #41921, #41923, #41934, #41935, #41940, #41942, #41943, #41951 - Failed merges:
2017-05-12Rollup merge of #41943 - malbarbo:android-openssl, r=alexcrichtonMark Simulacrum-0/+17
bootstrap: openssl android support
2017-05-12Rollup merge of #41940 - est31:master, r=eddybMark Simulacrum-0/+3
config.toml.example: point out that optimize = false won't speed up a full bootstrap Originally I've learned about this by @eddyb pointing this out to me over IRC, and after having told someone today the same over IRC I've thought that this is a common mistake and should be prevented by a note in config.toml.example r? @eddyb
2017-05-12config.toml.example: add note that optimize = false won't speed up a full ↵est31-0/+3
bootstrap
2017-05-11rustbuild: Use `-Z force-unstable-if-unmarked`Alex Crichton-2/+18
2017-05-07bootstrap: Output name of failed config in case of errorsDennis Schridde-1/+1
2017-05-05bootstrap: openssl android supportMarco A L Barbosa-0/+17
2017-05-04Add remote device testing supportMátyás Mustoha-19/+19
2017-05-03Auto merge of #41713 - cuviper:cmake-sanitizers, r=alexcrichtonbors-14/+13
rustbuild: Sanity-check cmake for sanitizers too It's possible to build the sanitizers when using an external LLVM, but we still need cmake for this. Extend the sanity check to look for cmake whenever sanitizers are enabled too.
2017-05-02rustbuild: Sanity-check cmake for sanitizers tooJosh Stone-14/+13
It's possible to build the sanitizers when using an external LLVM, but we still need cmake for this. Extend the sanity check to look for cmake whenever sanitizers are enabled too.
2017-05-01Add profiling support, through the rustc -Z profile flag.whitequark-0/+14
When -Z profile is passed, the GCDAProfiling LLVM pass is added to the pipeline, which uses debug information to instrument the IR. After compiling with -Z profile, the $(OUT_DIR)/$(CRATE_NAME).gcno file is created, containing initial profiling information. After running the program built, the $(OUT_DIR)/$(CRATE_NAME).gcda file is created, containing branch counters. The created *.gcno and *.gcda files can be processed using the "llvm-cov gcov" and "lcov" tools. The profiling data LLVM generates does not faithfully follow the GCC's format for *.gcno and *.gcda files, and so it will probably not work with other tools (such as gcov itself) that consume these files.
2017-04-30Rename os variable in bootstrap.py to avoid shadowing os module.Titus Barik-2/+2
2017-04-29Rollup merge of #41608 - cuviper:distcheck-rust-src, r=alexcrichtonCorey Farwell-0/+28
Add a distcheck for rust-src completeness This is for the last commit of #41546. For some reason, @bors only saw the first two commits, and wouldn't approve the last even when explicitly directed so. r? @alexcrichton
2017-04-29Update stage0 bootstrap compilerAlex Crichton-32/+37
We've got a freshly minted beta compiler, let's update to use that on nightly! This has a few other changes associated with it as well * A bump to the rustc version number (to 1.19.0) * Movement of the `cargo` and `rls` submodules to their "proper" location in `src/tools/{cargo,rls}`. Now that Cargo workspaces support the `exclude` option this can work. * Updates of the `cargo` and `rls` submodules to their master branches. * Tweak to the `src/stage0.txt` format to be more amenable for Cargo version numbers. On the beta channel Cargo will bootstrap from a different version than rustc (e.g. the version numbers are different), so we need different configuration for this. * Addition of `dev` as a readable key in the `src/stage0.txt` format. If present then stage0 compilers are downloaded from `dev-static.rust-lang.org` instead of `static.rust-lang.org`. This is added to accomodate our updated release process with Travis and AppVeyor.
2017-04-29Auto merge of #41577 - Keruspe:master, r=alexcrichtonbors-8/+24
rustbuild improvements Properly hook up cargo and rls in the build phase, and install them, when extended build is enabled.
2017-04-28rustbuild: only build cargo for hostMarc-Antoine Perennou-0/+1
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-27travis: Parallelize tests on AndroidAlex Crichton-121/+41
Currently our slowest test suite on android, run-pass, takes over 5 times longer than the x86_64 component (~400 -> ~2200s). Typically QEMU emulation does indeed add overhead, but not 5x for this kind of workload. One of the slowest parts of the Android process is that *compilation* happens serially. Tests themselves need to run single-threaded on the emulator (due to how the test harness works) and this forces the compiles themselves to be single threaded. Now Travis gives us more than one core per machine, so it'd be much better if we could take advantage of them! The emulator itself is still fundamentally single-threaded, but we should see a nice speedup by sending binaries for it to run much more quickly. It turns out that we've already got all the tools to do this in-tree. The qemu-test-{server,client} that are in use for the ARM Linux testing are a perfect match for the Android emulator. This commit migrates the custom adb management code in compiletest/rustbuild to the same qemu-test-{server,client} implementation that ARM Linux uses. This allows us to lift the parallelism restriction on the compiletest test suites, namely run-pass. Consequently although we'll still basically run the tests themselves in single threaded mode we'll be able to compile all of them in parallel, keeping the pipeline much more full and using more cores for the work at hand. Additionally the architecture here should be a bit speedier as it should have less overhead than adb which is a whole new process on both the host and the emulator! Locally on an 8 core machine I've seen the run-pass test suite speed up from taking nearly an hour to only taking 6 minutes. I don't think we'll see quite a drastic speedup on Travis but I'm hoping this change can place the Android tests well below 2 hours instead of just above 2 hours. Because the client/server here are now repurposed for more than just QEMU, they've been renamed to `remote-test-{server,client}`. Note that this PR does not currently modify how debuginfo tests are executed on Android. While parallelizable it wouldn't be quite as easy, so that's left to another day. Thankfully that test suite is much smaller than the run-pass test suite. As a final fix I discovered that the ARM and Android test suites were actually running all library unit tests (e.g. stdtest, coretest, etc) twice. I've corrected that to only run tests once which should also give a nice boost in overall cycle time here.
2017-04-27appveyor: Use Ninja/sccache on MSVCAlex Crichton-9/+92
Now that the final bug fixes have been merged into sccache we can start leveraging sccache on the MSVC builders on AppVeyor instead of relying on the ad-hoc caching strategy of trigger files and whatnot.
2017-04-27rustbuild: install rustc after cargo and rlsMarc-Antoine Perennou-3/+3
This way its files take precedence (e.g. README.md and stuff) Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-27rustbuild: install cargo and rls when extended build is enabledMarc-Antoine Perennou-4/+12
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-27rustbuild: add rls_package_versMarc-Antoine Perennou-0/+5
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-27rustbuild: pass version number as param in install phaseMarc-Antoine Perennou-6/+6
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-27rustbuild: build cargo and rls as part of extended buildMarc-Antoine Perennou-0/+2
Build them directly in the `./x.py build` phase, don't wait for `./x.py dist` Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-04-27Auto merge of #41567 - arielb1:rollup, r=arielb1bors-36/+85
Rollup of 9 pull requests - Successful merges: #41370, #41456, #41493, #41499, #41501, #41524, #41546, #41550, #41552 - Failed merges:
2017-04-26Rollup merge of #41552 - jessicah:updated-num-cpus-dep, r=alexcrichtonAriel Ben-Yehuda-1/+1
Update num_cpus dependency to 1.x (1.4.0)
2017-04-26Rollup merge of #41546 - cuviper:reduced-rust-src, r=alexcrichtonAriel Ben-Yehuda-27/+61
Shrink the rust-src component Before this change, the installable rust-src component had essentially the same contents as the rustc-src dist tarball, just additionally wrapped in a rust-installer. As discussed on [internals], rust-src is only meant to support uses for the standard library, so it doesn't really need the rest of the compiler sources. Now rust-src only contains libstd and its path dependencies, which roughly matches the set of crates that have rust-analysis data. The result is **significantly** smaller, from 36MB to 1.3MB compressed, and from 247MB to 8.5MB uncompressed. [internals]: https://internals.rust-lang.org/t/minimizing-the-rust-src-component/5117
2017-04-26Rollup merge of #41524 - michaelwu:basic-hexagon, r=alexcrichtonAriel Ben-Yehuda-2/+2
Add Hexagon support This requires an updated LLVM with https://reviews.llvm.org/D31999 and https://reviews.llvm.org/D32000 to build libcore. A basic hello world builds and runs successfully on the hexagon simulator. libcore is fine with LLVM fixes, but libstd requires a lot more work since there's a custom rtos running on most hexagon cores. Running Linux sounds possible though, so maybe getting linux + musl going would be easier. Here's the target file I've been using for testing ``` { "arch": "hexagon", "llvm-target": "hexagon-unknown-elf", "os": "none", "target-endian": "little", "target-pointer-width": "32", "data-layout": "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048", "linker": "hexagon-clang", "linker-flavor": "gcc", "executables": true, "cpu": "hexagonv60" } ```
2017-04-26Rollup merge of #41456 - jessicah:haiku-support, r=alexcrichtonAriel Ben-Yehuda-0/+5
Haiku: fix initial platform support
2017-04-26Rollup merge of #41370 - malbarbo:android-bootstrap, r=alexcrichtonAriel Ben-Yehuda-6/+16
Add bootstrap support for android
2017-04-26Make sure openssl compiles with only one coreAidan Hobson Sayers-1/+1
Fixes #40417
2017-04-26Add a distcheck for rust-src completenessJosh Stone-0/+28
2017-04-26Enable building the LLVM Hexagon targetMichael Wu-2/+2
2017-04-26Auto merge of #41352 - kennytm:macos-sanitizers, r=alexcrichtonbors-0/+20
Support AddressSanitizer and ThreadSanitizer on x86_64-apple-darwin [ASan](https://clang.llvm.org/docs/AddressSanitizer.html#supported-platforms) and [TSan](https://clang.llvm.org/docs/ThreadSanitizer.html#supported-platforms) are supported on macOS, and this commit enables their support. The sanitizers are always built as `*.dylib` on Apple platforms, so they cannot be statically linked into the corresponding `rustc_?san.rlib`. The dylibs are directly copied to `lib/rustlib/x86_64-apple-darwin/lib/` instead. Note, although Xcode also ships with their own copies of ASan/TSan dylibs, we cannot use them due to version mismatch. ---- ~~There is a caveat: the sanitizer libraries are linked as `@rpath/` (due to https://reviews.llvm.org/D6018), so the user needs to additionally pass `-C rpath`:~~ **Edit:** Passing rpath is now automatic.
2017-04-26Update num_cpus dependency to 1.x (1.4.0)Jessica Hamilton-1/+1
2017-04-25Rollup merge of #39983 - AndrewGaspar:rust-windbg, r=brsonCorey Farwell-1/+6
Adds rust-windbg.cmd script Adds rust-gdb/rust-lldb equivalent for windbg that loads the Rust .natvis files on start. This change modifies the bootstrap code to add rust-windbg to bin and the .natvis files to lib/rustlib/etc. Example usage from cmd or PowerShell: ``` rust-windbg -c "bu rs_f442289d74765418!rs::main;g" target\debug\rs.exe ```
2017-04-25Reduce the contents of the rust-src componentJosh Stone-1/+29