public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/mongodb/, dev-db/mongodb/files/
Date: Sat, 18 Jun 2022 17:17:49 +0000 (UTC)	[thread overview]
Message-ID: <1655572661.79a3c0438c8f3885fb8d5840263b36c8ebd80f4f.sam@gentoo> (raw)

commit:     79a3c0438c8f3885fb8d5840263b36c8ebd80f4f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 18 17:17:37 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 18 17:17:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79a3c043

dev-db/mongodb: don't force LLD

See patch for details.

Closes: https://bugs.gentoo.org/769986
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/mongodb-4.4.10-no-force-lld.patch        | 29 +++++++++++++
 .../mongodb/files/mongodb-5.0.5-no-force-lld.patch | 49 ++++++++++++++++++++++
 dev-db/mongodb/mongodb-4.4.10-r1.ebuild            |  1 +
 dev-db/mongodb/mongodb-5.0.5-r2.ebuild             |  1 +
 4 files changed, 80 insertions(+)

diff --git a/dev-db/mongodb/files/mongodb-4.4.10-no-force-lld.patch b/dev-db/mongodb/files/mongodb-4.4.10-no-force-lld.patch
new file mode 100644
index 000000000000..471f3e226820
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-4.4.10-no-force-lld.patch
@@ -0,0 +1,29 @@
+Don't automagically force lld > gold > bfd. Leave it up to the user.
+
+In particular, avoids issues with LTO enabled (via the flag/scons option)
+where using GCC as compiler, as lld can't do LTO with GCC.
+
+https://bugs.gentoo.org/769986
+--- a/SConstruct
++++ b/SConstruct
+@@ -3109,20 +3109,6 @@ def doConfigure(myenv):
+         myenv.Append( CCFLAGS=["/Zc:inline"])
+ 
+     if myenv.ToolchainIs('gcc', 'clang'):
+-        # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker
+-        # because it is much faster. Don't use it if the user has already configured another linker
+-        # selection manually.
+-        if not any(flag.startswith('-fuse-ld=') for flag in env['LINKFLAGS']):
+-
+-            # lld has problems with separate debug info on some platforms. See:
+-            # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
+-            # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
+-            if get_option('separate-debug') == 'off':
+-                if not AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=lld'):
+-                    AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
+-            else:
+-                AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
+-
+         # Usually, --gdb-index is too expensive in big static binaries, but for dynamic
+         # builds it works well.
+         if link_model.startswith("dynamic"):

diff --git a/dev-db/mongodb/files/mongodb-5.0.5-no-force-lld.patch b/dev-db/mongodb/files/mongodb-5.0.5-no-force-lld.patch
new file mode 100644
index 000000000000..6ce92778b6bd
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-5.0.5-no-force-lld.patch
@@ -0,0 +1,49 @@
+Don't automagically force lld > gold > bfd. Leave it up to the user.
+
+In particular, avoids issues with LTO enabled (via the flag/scons option)
+where using GCC as compiler, as lld can't do LTO with GCC.
+
+https://bugs.gentoo.org/769986
+--- a/SConstruct
++++ b/SConstruct
+@@ -2824,40 +2824,6 @@ def doConfigure(myenv):
+     def AddToSHLINKFLAGSIfSupported(env, flag):
+         return AddFlagIfSupported(env, 'C', '.c', flag, True, SHLINKFLAGS=[flag])
+ 
+-    if myenv.ToolchainIs('gcc', 'clang'):
+-        # This tells clang/gcc to use the gold linker if it is available - we prefer the gold linker
+-        # because it is much faster. Don't use it if the user has already configured another linker
+-        # selection manually.
+-        if any(flag.startswith('-fuse-ld=') for flag in env['LINKFLAGS']):
+-            myenv.FatalError(f"Use the '--linker' option instead of modifying the LINKFLAGS directly.")
+-
+-        linker_ld = get_option('linker')
+-        if linker_ld == 'auto':
+-            # lld has problems with separate debug info on some platforms. See:
+-            # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
+-            # - https://bugzilla.mozilla.org/show_bug.cgi?id=1485556
+-            #
+-            # lld also apparently has problems with symbol resolution
+-            # in some esoteric configurations that apply for us when
+-            # using --link-model=dynamic mode, so disable lld there
+-            # too. See:
+-            # - https://bugs.llvm.org/show_bug.cgi?id=46676
+-            #
+-            # We should revisit all of these issues the next time we upgrade our clang minimum.
+-            if get_option('separate-debug') == 'off' and get_option('link-model') != 'dynamic':
+-                if not AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=lld'):
+-                    AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
+-            else:
+-                AddToLINKFLAGSIfSupported(myenv, '-fuse-ld=gold')
+-        elif link_model.startswith("dynamic") and linker_ld == 'bfd':
+-            # BFD is not supported due to issues with it causing warnings from some of
+-            # the third party libraries that mongodb is linked with:
+-            # https://jira.mongodb.org/browse/SERVER-49465
+-            myenv.FatalError(f"Linker {linker_ld} is not supported with dynamic link model builds.")
+-        else:
+-            if not AddToLINKFLAGSIfSupported(myenv, f'-fuse-ld={linker_ld}'):
+-                myenv.FatalError(f"Linker {linker_ld} could not be configured.")
+-
+     detectCompiler = Configure(myenv, help=False, custom_tests = {
+         'CheckForCXXLink': CheckForCXXLink,
+     })

diff --git a/dev-db/mongodb/mongodb-4.4.10-r1.ebuild b/dev-db/mongodb/mongodb-4.4.10-r1.ebuild
index 19e02103e966..8cd7e5807418 100644
--- a/dev-db/mongodb/mongodb-4.4.10-r1.ebuild
+++ b/dev-db/mongodb/mongodb-4.4.10-r1.ebuild
@@ -59,6 +59,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-4.4.1-gcc11.patch"
 	"${FILESDIR}/${PN}-5.0.2-glibc-2.34.patch"
 	"${FILESDIR}/${PN}-4.4.10-boost-1.79.patch"
+	"${FILESDIR}/${PN}-4.4.10-no-force-lld.patch"
 )
 
 S="${WORKDIR}/${MY_P}"

diff --git a/dev-db/mongodb/mongodb-5.0.5-r2.ebuild b/dev-db/mongodb/mongodb-5.0.5-r2.ebuild
index 9e993f26b1d4..6c89b11fff96 100644
--- a/dev-db/mongodb/mongodb-5.0.5-r2.ebuild
+++ b/dev-db/mongodb/mongodb-5.0.5-r2.ebuild
@@ -66,6 +66,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-5.0.2-skip-no-exceptions.patch"
 	"${FILESDIR}/${PN}-5.0.2-skip-reqs-check.patch"
 	"${FILESDIR}/${PN}-5.0.2-boost-1.79.patch"
+	"${FILESDIR}/${PN}-5.0.5-no-force-lld.patch"
 )
 
 S="${WORKDIR}/${MY_P}"


             reply	other threads:[~2022-06-18 17:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-18 17:17 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-07-15  4:22 [gentoo-commits] repo/gentoo:master commit in: dev-db/mongodb/, dev-db/mongodb/files/ Sam James
2024-05-30  6:46 Alexys Jacob
2024-05-28  1:45 Sam James
2023-05-23 13:32 Sam James
2023-05-16  7:53 Alexys Jacob
2022-12-30 20:22 Sam James
2022-05-14 21:50 Sam James
2022-05-14 21:27 Sam James
2021-08-19 16:38 Alexys Jacob
2019-09-21 21:22 David Seifert
2019-08-21  7:21 Alexys Jacob
2019-08-09  7:28 Alexys Jacob
2018-11-05 12:33 Alexys Jacob
2018-06-28 12:45 Alexys Jacob
2018-01-11 11:34 Alexys Jacob
2017-09-22  9:28 Patrice Clement
2017-09-21 19:50 Patrice Clement
2017-09-05  8:17 David Seifert
2017-07-26 22:17 Zac Medico
2017-01-11  7:43 Alexys Jacob
2016-01-03 12:27 Alexys Jacob
2016-01-01 10:36 Michał Górny
2015-12-27 16:59 Alexys Jacob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1655572661.79a3c0438c8f3885fb8d5840263b36c8ebd80f4f.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox