build/test_templates.mozbuild
author Nick Alexander <nalexander@mozilla.com>
Fri, 12 Oct 2018 22:38:44 +0000
changeset 499408 91300d29898b1a1102e1b62164aeee1f56b2ee86
parent 348206 3ec6380fca8207fa199693206a3ca24975bf9833
permissions -rw-r--r--
Bug 1489443 - Set GCC_USE_GNU_LD based on linker kind. r=froydnj The desired outcome of this change is that we'll set `-Wl,--version-script` based on linker kind and not on the output of `$LINKER -v`. This is a cheap way to address a simple problem that has a complicated ideal solution. The underlying issue is that in some situations, when targeting Android, a macOS system `ld` is interrogated to determine if a cross-compiling linker "is GNU ld" and a particular linker feature is set in that situation. The macOS system `ld` doesn't pass the "is GNU ld" test, and the linker feature isn't set; that causes link failures, even though the actual linker has nothing to do with the system `ld`. The ideal solution is to test for linker capabilities dynamically. We do a lot of that in old-configure.in, and we don't do any of that in toolchain.configure. Rather than start testing in toolchain.configure, we hard-code: a cheap solution to the immediate problem. Differential Revision: https://phabricator.services.mozilla.com/D8471

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

@template
def GeneratedTestCertificate(name):
    if not CONFIG['COMPILE_ENVIRONMENT']:
        return

    GENERATED_FILES += [name]
    props = GENERATED_FILES[name]
    props.script = '/security/manager/ssl/tests/unit/pycert.py'
    props.inputs = ['%s.certspec' % name]
    # Turn RELATIVEDIR into list entry: like
    # 'security/manager/ssl/tests/unit/bad_certs' ->
    # TEST_HARNESS_FILES.xpcshell.security.manager.ssl.tests.unit.bad_certs.
    files = TEST_HARNESS_FILES.xpcshell
    for part in RELATIVEDIR.split('/'):
        files = files[part]
    files += ['!%s' % name]

@template
def GeneratedTestKey(name):
    if not CONFIG['COMPILE_ENVIRONMENT']:
        return

    GENERATED_FILES += [name]
    props = GENERATED_FILES[name]
    props.script = '/security/manager/ssl/tests/unit/pykey.py'
    props.inputs = ['%s.keyspec' % name]
    # Turn RELATIVEDIR into list entry: like
    # 'security/manager/ssl/tests/unit/bad_certs' ->
    # TEST_HARNESS_FILES.xpcshell.security.manager.ssl.tests.unit.bad_certs.
    files = TEST_HARNESS_FILES.xpcshell
    for part in RELATIVEDIR.split('/'):
        files = files[part]
    files += ['!%s' % name]