mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
Bug 1746462 - add support for --enable-linker=mold on linux. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D134330
This commit is contained in:
parent
4c1cf5698c
commit
d4f5769a01
@ -1513,7 +1513,7 @@ def enable_linker_default(target, developer_options):
|
||||
option(
|
||||
"--enable-linker",
|
||||
nargs=1,
|
||||
help="Select the linker {bfd, gold, ld64, lld, lld-*}{|}",
|
||||
help="Select the linker {bfd, gold, ld64, lld, lld-*, mold}{|}",
|
||||
default=enable_linker_default,
|
||||
when=is_linker_option_enabled,
|
||||
)
|
||||
@ -1548,7 +1548,7 @@ def select_linker(linker, c_compiler, developer_options, toolchain_flags, target
|
||||
if target.kernel == "Darwin":
|
||||
valid_linkers = ("ld64", "lld")
|
||||
else:
|
||||
valid_linkers = ("bfd", "gold", "lld")
|
||||
valid_linkers = ("bfd", "gold", "lld", "mold")
|
||||
if linker in valid_linkers:
|
||||
return True
|
||||
if "lld" in valid_linkers and linker.startswith("lld-"):
|
||||
@ -1593,6 +1593,9 @@ def select_linker(linker, c_compiler, developer_options, toolchain_flags, target
|
||||
elif retcode != 0:
|
||||
return None
|
||||
|
||||
elif "mold" in stdout:
|
||||
kind = "mold"
|
||||
|
||||
elif "GNU ld" in stdout:
|
||||
# We are using the normal linker
|
||||
kind = "bfd"
|
||||
@ -1699,7 +1702,7 @@ add_old_configure_assignment("LINKER_LDFLAGS", linker_ldflags)
|
||||
@depends(select_linker, target, c_compiler)
|
||||
def gcc_use_gnu_ld(select_linker, target, c_compiler):
|
||||
if select_linker is not None and target.kernel != "Darwin":
|
||||
return select_linker.KIND in ("bfd", "gold", "lld")
|
||||
return select_linker.KIND in ("bfd", "gold", "lld", "mold")
|
||||
if target.kernel == "WINNT" and c_compiler.type == "clang":
|
||||
return True
|
||||
return None
|
||||
|
@ -1446,7 +1446,7 @@ with only_when("--enable-compile-environment"):
|
||||
@depends("--enable-release", enable_linker)
|
||||
def default_elfhack(release, linker):
|
||||
# Disable elfhack when explicitly building with --enable-linker=lld
|
||||
if linker and linker.origin != "default" and linker[0] == "lld":
|
||||
if linker and linker.origin != "default" and linker[0] in ("lld", "mold"):
|
||||
return False
|
||||
return bool(release)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user