diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-02-17 02:04:44 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-17 02:04:44 -0800 |
commit | 1afae52c47e754c6573f4a8b72fcc2e6994d253f (patch) | |
tree | 3393b43158c048767b8cf6d13faa2e76e914cf9a | |
parent | 08cb09b2a09aa153454b137c4e9ea2ec82dc3cf8 (diff) | |
parent | 8bc9f0ed850686b9ca48612f7297c5048e3b3093 (diff) | |
download | servo-1afae52c47e754c6573f4a8b72fcc2e6994d253f.tar.gz servo-1afae52c47e754c6573f4a8b72fcc2e6994d253f.zip |
Auto merge of #15564 - servo:no-gods-no-masters-no-assertions, r=Ms2ger
Disable LLVM assertions by default, on supported platforms
<!-- Please describe your changes on the following line: -->
https://github.com/servo/servo/pull/15559#issuecomment-280003926
> With an empty incremental compilation cache (or, presumably, with incremental compilation disabled), LLVM assertions add 16% to the compilation time in debug mode, 53% (!) in release mode.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15548 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15564)
<!-- Reviewable:end -->
-rw-r--r-- | etc/ci/buildbot_steps.yml | 26 | ||||
-rw-r--r-- | python/servo/command_base.py | 9 | ||||
-rw-r--r-- | python/servo/util.py | 6 | ||||
-rw-r--r-- | servobuild.example | 2 |
4 files changed, 26 insertions, 17 deletions
diff --git a/etc/ci/buildbot_steps.yml b/etc/ci/buildbot_steps.yml index 3d883ac680e..81bd943c72e 100644 --- a/etc/ci/buildbot_steps.yml +++ b/etc/ci/buildbot_steps.yml @@ -14,9 +14,9 @@ mac-rel-wpt2: - ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --use-tracker mac-dev-unit: - - ./mach build --dev - - ./mach test-unit - - ./mach build-cef + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build --dev + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach test-unit + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build-cef - ./mach build-geckolib - bash ./etc/ci/lockfile_changed.sh - bash ./etc/ci/manifest_changed.sh @@ -46,10 +46,10 @@ mac-rel-intermittent: linux-dev: - ./mach test-tidy --no-progress --all - ./mach test-tidy --no-progress --self-test - - ./mach build --dev - - ./mach test-compiletest - - ./mach test-unit - - ./mach build-cef + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build --dev + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach test-compiletest + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach test-unit + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build-cef - ./mach build-geckolib - ./mach test-stylo - bash ./etc/ci/lockfile_changed.sh @@ -79,24 +79,24 @@ linux-nightly: - ./etc/ci/upload_nightly.sh linux android: - - ./mach build --android --dev - - ./mach package --android --dev + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build --android --dev + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach package --android --dev - bash ./etc/ci/lockfile_changed.sh - bash ./etc/ci/manifest_changed.sh - python ./etc/ci/check_dynamic_symbols.py android-nightly: - - ./mach build --android --release - - ./mach package --android --release + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build --android --release + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach package --android --release - ./etc/ci/upload_nightly.sh android arm32: - - ./mach build --rel --target=arm-unknown-linux-gnueabihf + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build --rel --target=arm-unknown-linux-gnueabihf - bash ./etc/ci/lockfile_changed.sh - bash ./etc/ci/manifest_changed.sh arm64: - - ./mach build --rel --target=aarch64-unknown-linux-gnu + - env SERVO_RUSTC_LLVM_ASSERTIONS=1 ./mach build --rel --target=aarch64-unknown-linux-gnu - bash ./etc/ci/lockfile_changed.sh - bash ./etc/ci/manifest_changed.sh diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 5ad351b3411..34ce2bfc682 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -23,7 +23,7 @@ from mach.registrar import Registrar import toml from servo.packages import WINDOWS_MSVC as msvc_deps -from servo.util import host_triple +from servo.util import host_triple, host_platform BIN_SUFFIX = ".exe" if sys.platform == "win32" else "" @@ -263,10 +263,15 @@ class CommandBase(object): context.sharedir, "cargo", self.cargo_build_id()) self.config["tools"].setdefault("rustc-with-gold", get_env_bool("SERVO_RUSTC_WITH_GOLD", True)) + # https://github.com/rust-lang/rust/pull/39754 + platforms_with_rustc_alt_builds = ["unknown-linux-gnu", "apple-darwin", "pc-windows-msvc"] + llvm_assertions_default = ("SERVO_RUSTC_LLVM_ASSERTIONS" in os.environ + or host_platform() not in platforms_with_rustc_alt_builds) + self.config.setdefault("build", {}) self.config["build"].setdefault("android", False) self.config["build"].setdefault("mode", "") - self.config["build"].setdefault("llvm-assertions", True) + self.config["build"].setdefault("llvm-assertions", llvm_assertions_default) self.config["build"].setdefault("debug-mozjs", False) self.config["build"].setdefault("ccache", "") self.config["build"].setdefault("rustflags", "") diff --git a/python/servo/util.py b/python/servo/util.py index 03f993b3bf0..77fba165446 100644 --- a/python/servo/util.py +++ b/python/servo/util.py @@ -20,7 +20,7 @@ import zipfile import urllib2 -def host_triple(): +def host_platform(): os_type = platform.system().lower() if os_type == "linux": os_type = "unknown-linux-gnu" @@ -42,7 +42,11 @@ def host_triple(): os_type = "unknown-freebsd" else: os_type = "unknown" + return os_type + +def host_triple(): + os_type = host_platform() cpu_type = platform.machine().lower() if os_type.endswith("-msvc"): # vcvars*.bat should set it properly diff --git a/servobuild.example b/servobuild.example index 4e77184666c..f36fa525d67 100644 --- a/servobuild.example +++ b/servobuild.example @@ -40,7 +40,7 @@ rustc-with-gold = true #mode = "dev" # Whether to enable LLVM assertions in rustc. -#llvm-assertions = true +#llvm-assertions = false # Set "android = true" or use `mach build --android` to build the Android app. android = false |