diff options
author | Sam James <sam@gentoo.org> | 2022-06-18 18:17:37 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-06-18 18:17:41 +0100 |
commit | 79a3c0438c8f3885fb8d5840263b36c8ebd80f4f (patch) | |
tree | 3c54cfc014a0632859d52bb55556d2c2a82cdb97 /dev-db | |
parent | app-containers/snapd: add 2.56.2 (diff) | |
download | gentoo-79a3c0438c8f3885fb8d5840263b36c8ebd80f4f.tar.gz gentoo-79a3c0438c8f3885fb8d5840263b36c8ebd80f4f.tar.bz2 gentoo-79a3c0438c8f3885fb8d5840263b36c8ebd80f4f.zip |
dev-db/mongodb: don't force LLD
See patch for details.
Closes: https://bugs.gentoo.org/769986
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-db')
-rw-r--r-- | dev-db/mongodb/files/mongodb-4.4.10-no-force-lld.patch | 29 | ||||
-rw-r--r-- | dev-db/mongodb/files/mongodb-5.0.5-no-force-lld.patch | 49 | ||||
-rw-r--r-- | dev-db/mongodb/mongodb-4.4.10-r1.ebuild | 1 | ||||
-rw-r--r-- | dev-db/mongodb/mongodb-5.0.5-r2.ebuild | 1 |
4 files changed, 80 insertions, 0 deletions
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}" |