From 402fce07b94f9339d6f1620498ddd62f52b95fd2 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Tue, 25 Oct 2022 22:58:25 +0000 Subject: [PATCH] Bug 1796518 - Tweak lld flags for faster linkage on developer builds. r=firefox-build-system-reviewers,nalexander Differential Revision: https://phabricator.services.mozilla.com/D159832 --- build/moz.configure/toolchain.configure | 11 ++++++++++- js/src/old-configure.in | 14 ++++++++------ old-configure.in | 14 ++++++++------ 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure index e32982d82448..ce11ba731cf4 100755 --- a/build/moz.configure/toolchain.configure +++ b/build/moz.configure/toolchain.configure @@ -1673,10 +1673,17 @@ set_config("LINKER_KIND", select_linker.KIND) target_multiarch_dir, android_platform, c_compiler, + developer_options, ) @imports("os") def linker_ldflags( - linker, target, sysroot, multiarch_dir, android_platform, c_compiler + linker, + target, + sysroot, + multiarch_dir, + android_platform, + c_compiler, + developer_options, ): flags = list((linker and linker.LINKER_FLAG) or []) # rpath-link is irrelevant to wasm, see for more info https://github.com/emscripten-core/emscripten/issues/11076. @@ -1701,6 +1708,8 @@ def linker_ldflags( flags.append("-Wl,--rpath-link={}/usr/lib".format(android_platform)) flags.append("--sysroot") flags.append(android_platform) + if developer_options and linker.KIND == "lld" and target.kernel != "WINNT": + flags.append("-Wl,-O0") return flags diff --git a/js/src/old-configure.in b/js/src/old-configure.in index b05fb8a0d875..523a5fb9c542 100644 --- a/js/src/old-configure.in +++ b/js/src/old-configure.in @@ -255,12 +255,14 @@ if test "$GNU_CC"; then AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) - AC_MSG_CHECKING([for --build-id=sha1 option to ld]) - _SAVE_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,--build-id=sha1" - AC_TRY_LINK(,,AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - LDFLAGS=$_SAVE_LDFLAGS) + if test -z "$DEVELOPER_OPTIONS" -o "$OS_TARGET" = "Android"; then + AC_MSG_CHECKING([for --build-id=sha1 option to ld]) + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--build-id=sha1" + AC_TRY_LINK(,,AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) + LDFLAGS=$_SAVE_LDFLAGS) + fi _DEFINES_CFLAGS="-include $jsconfdefs -DMOZILLA_CLIENT" fi diff --git a/old-configure.in b/old-configure.in index bb650af54531..c676b6ce7089 100644 --- a/old-configure.in +++ b/old-configure.in @@ -269,12 +269,14 @@ if test "$GNU_CC"; then AC_MSG_RESULT([no]) LDFLAGS=$_SAVE_LDFLAGS) - AC_MSG_CHECKING([for --build-id=sha1 option to ld]) - _SAVE_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,--build-id=sha1" - AC_TRY_LINK(,,AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no]) - LDFLAGS=$_SAVE_LDFLAGS) + if test -z "$DEVELOPER_OPTIONS" -o "$OS_TARGET" = "Android"; then + AC_MSG_CHECKING([for --build-id=sha1 option to ld]) + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--build-id=sha1" + AC_TRY_LINK(,,AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no]) + LDFLAGS=$_SAVE_LDFLAGS) + fi AC_MSG_CHECKING([for --ignore-unresolved-symbol option to ld]) HAVE_LINKER_SUPPORT_IGNORE_UNRESOLVED=