diff options
author | Martin Robinson <mrobinson@igalia.com> | 2023-08-15 15:53:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-15 13:53:05 +0000 |
commit | 16445983ececfcdf80a4dd84412268b560031b4e (patch) | |
tree | 97de6ff7a71e61439cd6f5454c2d14b7ab7a5299 /python/servo/command_base.py | |
parent | 2778beeb7a623e0150e5084da14afa884b76f656 (diff) | |
download | servo-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.py | 8 |
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"] |