diff --git a/build/autoconf/toolchain.m4 b/build/autoconf/toolchain.m4 index 9c26ef5ad0e0..3a7b94121dd8 100644 --- a/build/autoconf/toolchain.m4 +++ b/build/autoconf/toolchain.m4 @@ -34,6 +34,12 @@ if test "$CC_TYPE" = "clang-cl"; then CLANG_CL=1 fi +if test "$GNU_CC"; then + if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then + GCC_USE_GNU_LD=1 + fi +fi + AC_SUBST(CLANG_CXX) AC_SUBST(CLANG_CL) ]) diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure index a37ce6df109c..36b54e0982f0 100755 --- a/build/moz.configure/toolchain.configure +++ b/build/moz.configure/toolchain.configure @@ -1818,13 +1818,6 @@ set_config('LD_IS_BFD', depends(select_linker.KIND) add_old_configure_assignment('LINKER_LDFLAGS', select_linker.LINKER_FLAG) -# GCC_USE_GNU_LD=1 means the linker is command line compatible with GNU ld. -set_config('GCC_USE_GNU_LD', depends(select_linker.KIND) - (lambda x: x in ('bfd', 'gold', 'lld') or None)) -add_old_configure_assignment('GCC_USE_GNU_LD', depends(select_linker.KIND) - (lambda x: x in ('bfd', 'gold', 'lld') or None)) - - # Assembler detection # ============================================================== diff --git a/js/src/old-configure.in b/js/src/old-configure.in index a1a562d91ff7..fef3f498f871 100644 --- a/js/src/old-configure.in +++ b/js/src/old-configure.in @@ -1770,6 +1770,8 @@ AC_SUBST(HOST_BIN_SUFFIX) AC_SUBST(TARGET_XPCOM_ABI) +AC_SUBST(GCC_USE_GNU_LD) + AC_SUBST_LIST(DSO_CFLAGS) AC_SUBST_LIST(DSO_PIC_CFLAGS) AC_SUBST(DSO_LDOPTS) diff --git a/old-configure.in b/old-configure.in index f3ab4014e9ac..6e7ea41ae12b 100644 --- a/old-configure.in +++ b/old-configure.in @@ -4212,6 +4212,7 @@ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3) AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1) AC_SUBST(HAVE_X86_AVX2) AC_SUBST(HAVE_ALTIVEC) +AC_SUBST(GCC_USE_GNU_LD) AC_SUBST_LIST(DSO_CFLAGS) AC_SUBST_LIST(DSO_PIC_CFLAGS) diff --git a/python/mozbuild/mozbuild/action/generate_symbols_file.py b/python/mozbuild/mozbuild/action/generate_symbols_file.py index e57e131aa7ef..bf1ae917a2d0 100644 --- a/python/mozbuild/mozbuild/action/generate_symbols_file.py +++ b/python/mozbuild/mozbuild/action/generate_symbols_file.py @@ -71,7 +71,7 @@ def generate_symbols_file(output, *args): assert ext == '.def' output.write('LIBRARY %s\nEXPORTS\n %s\n' % (libname, '\n '.join(symbols))) - elif buildconfig.substs.get('GCC_USE_GNU_LD'): + elif buildconfig.substs['GCC_USE_GNU_LD']: # A linker version script is generated for GNU LD that looks like the # following: # liblibrary.so { diff --git a/security/generate_mapfile.py b/security/generate_mapfile.py index 7cf215bf2751..5fcb20cf3b96 100644 --- a/security/generate_mapfile.py +++ b/security/generate_mapfile.py @@ -22,8 +22,7 @@ import buildconfig def main(output, input): is_darwin = buildconfig.substs['OS_ARCH'] == 'Darwin' - is_mingw = "WINNT" == buildconfig.substs['OS_ARCH'] and \ - buildconfig.substs.get('GCC_USE_GNU_LD') + is_mingw = "WINNT" == buildconfig.substs['OS_ARCH'] and buildconfig.substs['GCC_USE_GNU_LD'] with open(input, 'rb') as f: for line in f: