aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/command_base.py
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2023-08-15 15:53:05 +0200
committerGitHub <noreply@github.com>2023-08-15 13:53:05 +0000
commit16445983ececfcdf80a4dd84412268b560031b4e (patch)
tree97de6ff7a71e61439cd6f5454c2d14b7ab7a5299 /python/servo/command_base.py
parent2778beeb7a623e0150e5084da14afa884b76f656 (diff)
downloadservo-16445983ececfcdf80a4dd84412268b560031b4e.tar.gz
servo-16445983ececfcdf80a4dd84412268b560031b4e.zip
Remove gold config option and use lld on Linux (#30100)
There are a few motivations for this change: 1. lld is demonstrably faster than gold, but is really only stable on Linux at the moment. There's a good chance that it will be ready for all platforms soon though. 2. Most people do not have gold installed on MacOS and Windows. You'd have to do this manually through homebrew. I think it's a safe assumption that this probably won't be slowing things down much on those platforms. 3. We need to remove all configuration of the build that happens while running `./mach build` if we ever hope to make `cargo build` equivalent to the mach build. This unlocks static configuration of the rustflags. One of the big blockers for proper `cargo build` support.
Diffstat (limited to 'python/servo/command_base.py')
-rw-r--r--python/servo/command_base.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/python/servo/command_base.py b/python/servo/command_base.py
index b56fabbcd5b..3890d3b69c7 100644
--- a/python/servo/command_base.py
+++ b/python/servo/command_base.py
@@ -509,9 +509,11 @@ class CommandBase(object):
if self.config["build"]["rustflags"]:
env['RUSTFLAGS'] = env.get('RUSTFLAGS', "") + " " + self.config["build"]["rustflags"]
- if self.config["tools"]["rustc-with-gold"]:
- if shutil.which('ld.gold'):
- env['RUSTFLAGS'] = env.get('RUSTFLAGS', "") + " -C link-args=-fuse-ld=gold"
+ # Turn on rust's version of lld if we are on x86 Linux.
+ # TODO(mrobinson): Gradually turn this on for more platforms, when support stabilizes.
+ # See https://github.com/rust-lang/rust/issues/39915
+ if not self.cross_compile_target and effective_target == "x86_64-unknown-linux-gnu":
+ env['RUSTFLAGS'] = env.get('RUSTFLAGS', "") + " -Zgcc-ld=lld"
if not (self.config["build"]["ccache"] == ""):
env['CCACHE'] = self.config["build"]["ccache"]