Commit 4b39c5a8 authored by Mike Hommey's avatar Mike Hommey
Browse files

Bug 1747752 - Deprecate --enable-gold. r=firefox-build-system-reviewers,mhentges

--enable-linker=gold has been supported for a long while, and keeping
enable_gold does add a little extra complexity for not much benefit.

Differential Revision: https://phabricator.services.mozilla.com/D134732
parent 971775cd
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -2136,14 +2136,12 @@ def is_linker_option_enabled(target):
        return True


option(
    "--enable-gold",
    env="MOZ_FORCE_GOLD",
    help="Enable GNU Gold Linker when it is not already the default",
    when=is_linker_option_enabled,
)

imply_option("--enable-linker", "gold", when="--enable-gold")
@deprecated_option("--enable-gold", env="MOZ_FORCE_GOLD", when=is_linker_option_enabled)
def enable_gold(value):
    if value:
        die("--enable-gold is deprecated, use --enable-linker=gold instead")
    else:
        die("--disable-gold is deprecated, use --enable-linker=something_else instead")


@depends(target, developer_options)
@@ -2175,7 +2173,6 @@ def enable_linker(linker):
    "--enable-linker",
    c_compiler,
    developer_options,
    "--enable-gold",
    extra_toolchain_flags,
    target,
    when=is_linker_option_enabled,
@@ -2183,9 +2180,7 @@ def enable_linker(linker):
@checking("for linker", lambda x: x.KIND)
@imports("os")
@imports("shutil")
def select_linker(
    linker, c_compiler, developer_options, enable_gold, toolchain_flags, target
):
def select_linker(linker, c_compiler, developer_options, toolchain_flags, target):

    if linker:
        linker = linker[0]
@@ -2265,7 +2260,6 @@ def select_linker(

    if (
        linker is None
        and enable_gold.origin == "default"
        and developer_options
        and (result is None or result.KIND in ("bfd", "gold"))
    ):
+2 −3
Original line number Diff line number Diff line
@@ -384,16 +384,15 @@ def Version(v):
# The function may handle the option like a typical @depends function would,
# but it is recommended it emits a deprecation error message suggesting an
# alternative option to use if there is one.


@template
def deprecated_option(*args, **kwargs):
    assert "help" not in kwargs
    kwargs["help"] = "Deprecated"
    opt = option(*args, **kwargs)
    kwargs = {k: v for k, v in kwargs.items() if k == "when"}

    def decorator(func):
        @depends(opt.option)
        @depends(opt.option, **kwargs)
        def deprecated(value):
            if value.origin != "default":
                return func(value)