summaryrefslogtreecommitdiff
path: root/dev-db/mongodb/files/mongodb-7.0.2-sconstruct.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db/mongodb/files/mongodb-7.0.2-sconstruct.patch')
-rw-r--r--dev-db/mongodb/files/mongodb-7.0.2-sconstruct.patch236
1 files changed, 236 insertions, 0 deletions
diff --git a/dev-db/mongodb/files/mongodb-7.0.2-sconstruct.patch b/dev-db/mongodb/files/mongodb-7.0.2-sconstruct.patch
new file mode 100644
index 000000000000..20b1d19bfd27
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-7.0.2-sconstruct.patch
@@ -0,0 +1,236 @@
+diff --git a/SConstruct2 b/SConstruct
+index e9aa2ca..5814f4a 100644
+--- a/SConstruct2
++++ b/SConstruct
+@@ -25,7 +25,7 @@ from pkg_resources import parse_version
+
+ import SCons
+ import SCons.Script
+-from mongo_tooling_metrics.lib.top_level_metrics import SConsToolingMetrics
++#from mongo_tooling_metrics.lib.top_level_metrics import SConsToolingMetrics
+ from site_scons.mongo import build_profiles
+
+ # This must be first, even before EnsureSConsVersion, if
+@@ -1724,13 +1724,13 @@ env.AddMethod(lambda env, name, **kwargs: add_option(name, **kwargs), 'AddOption
+
+ # The placement of this is intentional. Here we setup an atexit method to store tooling metrics.
+ # We should only register this function after env, env_vars and the parser have been properly initialized.
+-SConsToolingMetrics.register_metrics(
+- utc_starttime=datetime.utcnow(),
+- artifact_dir=env.Dir('$BUILD_DIR').get_abspath(),
+- env_vars=env_vars,
+- env=env,
+- parser=_parser,
+-)
++#SConsToolingMetrics.register_metrics(
++# utc_starttime=datetime.utcnow(),
++# artifact_dir=env.Dir('$BUILD_DIR').get_abspath(),
++# env_vars=env_vars,
++# env=env,
++# parser=_parser,
++#)
+
+ if get_option('build-metrics'):
+ env['BUILD_METRICS_ARTIFACTS_DIR'] = '$BUILD_ROOT/$VARIANT_DIR'
+@@ -3132,7 +3132,7 @@ if env.TargetOSIs('posix'):
+ env.Append(
+ CCFLAGS=[
+ "-fasynchronous-unwind-tables",
+- "-g2" if not env.TargetOSIs('emscripten') else "-g",
++# "-g2" if not env.TargetOSIs('emscripten') else "-g",
+ "-Wall",
+ "-Wsign-compare",
+ "-Wno-unknown-pragmas",
+@@ -3200,6 +3200,8 @@ if env.TargetOSIs('posix'):
+
+ # env.Append( " -Wconversion" ) TODO: this doesn't really work yet
+ env.Append(CXXFLAGS=["-Woverloaded-virtual"])
++ env.Append(CXXFLAGS=os.environ['CXXFLAGS'])
++ env.Append(LINKFLAGS=os.environ['LDFLAGS'])
+
+ # On OS X, clang doesn't want the pthread flag at link time, or it
+ # issues warnings which make it impossible for us to declare link
+@@ -3250,7 +3252,7 @@ if env.TargetOSIs('posix'):
+ ], )
+
+ #make scons colorgcc friendly
+- for key in ('HOME', 'TERM'):
++ for key in ('HOME', 'TERM', 'PATH'):
+ try:
+ env['ENV'][key] = os.environ[key]
+ except KeyError:
+@@ -3644,35 +3646,35 @@ def doConfigure(myenv):
+ myenv.AddMethod(
+ functools.partial(var_func, var=var, func=CheckFlag), f"Check{var}Supported")
+
+- 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 == "bfd" and env.get("BAZEL_BUILD_ENABLED"):
+- myenv.FatalError(f"The linker 'bfd' is not supported with BAZEL_BUILD_ENABLED.")
+- elif linker_ld == 'auto':
+- if not env.TargetOSIs('darwin', 'macOS'):
+- if not myenv.AddToLINKFLAGSIfSupported('-fuse-ld=lld'):
+- myenv.FatalError(
+- f"The recommended linker 'lld' is not supported with the current compiler configuration, you can try the 'gold' linker with '--linker=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 myenv.AddToLINKFLAGSIfSupported(f'-fuse-ld={linker_ld}'):
+- myenv.FatalError(f"Linker {linker_ld} could not be configured.")
+-
+- if has_option('gcov') and myenv.AddToCCFLAGSIfSupported('-fprofile-update=single'):
+- myenv.AppendUnique(LINKFLAGS=['-fprofile-update=single'])
++# 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 == "bfd" and env.get("BAZEL_BUILD_ENABLED"):
++# myenv.FatalError(f"The linker 'bfd' is not supported with BAZEL_BUILD_ENABLED.")
++# elif linker_ld == 'auto':
++# if not env.TargetOSIs('darwin', 'macOS'):
++# if not myenv.AddToLINKFLAGSIfSupported('-fuse-ld=lld'):
++# myenv.FatalError(
++# f"The recommended linker 'lld' is not supported with the current compiler configuration, you can try the 'gold' linker with '--linker=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 myenv.AddToLINKFLAGSIfSupported(f'-fuse-ld={linker_ld}'):
++# myenv.FatalError(f"Linker {linker_ld} could not be configured.")
++#
++# if has_option('gcov') and myenv.AddToCCFLAGSIfSupported('-fprofile-update=single'):
++# myenv.AppendUnique(LINKFLAGS=['-fprofile-update=single'])
+
+ detectCompiler = Configure(
+ myenv,
+@@ -4765,42 +4767,42 @@ def doConfigure(myenv):
+ if optBuild == "off" and myenv.ToolchainIs('clang') and env.TargetOSIs('darwin'):
+ myenv.AddToLINKFLAGSIfSupported("-Wl,-no_deduplicate")
+
+- # Apply any link time optimization settings as selected by the 'lto' option.
+- if has_option('lto'):
+- if myenv.ToolchainIs('msvc'):
+- # Note that this is actually more aggressive than LTO, it is whole program
+- # optimization due to /GL. However, this is historically what we have done for
+- # windows, so we are keeping it.
+- #
+- # /GL implies /LTCG, so no need to say it in CCFLAGS, but we do need /LTCG on the
+- # link flags.
+- myenv.Append(CCFLAGS=['/GL'])
+- myenv.Append(LINKFLAGS=['/LTCG'])
+- myenv.Append(ARFLAGS=['/LTCG'])
+- elif myenv.ToolchainIs('gcc', 'clang'):
+- # For GCC and clang, the flag is -flto, and we need to pass it both on the compile
+- # and link lines.
+- if not myenv.AddToCCFLAGSIfSupported('-flto') or \
+- not myenv.AddToLINKFLAGSIfSupported('-flto'):
+- myenv.ConfError("Link time optimization requested, "
+- "but selected compiler does not honor -flto")
+-
+- if myenv.TargetOSIs('darwin'):
+- myenv.AddToLINKFLAGSIfSupported('-Wl,-object_path_lto,${TARGET}.lto')
+- else:
+- # According to intel benchmarks -fno-plt increases perf
+- # See PM-2215
+- if linker_ld != "gold":
+- myenv.ConfError("lto compilation currently only works with the --linker=gold")
+- if link_model != "object":
+- myenv.ConfError(
+- "lto compilation currently only works with the --link-model=object")
+- if not myenv.AddToCCFLAGSIfSupported('-fno-plt') or \
+- not myenv.AddToLINKFLAGSIfSupported('-fno-plt'):
+- myenv.ConfError("-fno-plt is not supported by the compiler")
+-
+- else:
+- myenv.ConfError("Don't know how to enable --lto on current toolchain")
++# # Apply any link time optimization settings as selected by the 'lto' option.
++# if has_option('lto'):
++# if myenv.ToolchainIs('msvc'):
++# # Note that this is actually more aggressive than LTO, it is whole program
++# # optimization due to /GL. However, this is historically what we have done for
++# # windows, so we are keeping it.
++# #
++# # /GL implies /LTCG, so no need to say it in CCFLAGS, but we do need /LTCG on the
++# # link flags.
++# myenv.Append(CCFLAGS=['/GL'])
++# myenv.Append(LINKFLAGS=['/LTCG'])
++# myenv.Append(ARFLAGS=['/LTCG'])
++# elif myenv.ToolchainIs('gcc', 'clang'):
++# # For GCC and clang, the flag is -flto, and we need to pass it both on the compile
++# # and link lines.
++# if not myenv.AddToCCFLAGSIfSupported('-flto') or \
++# not myenv.AddToLINKFLAGSIfSupported('-flto'):
++# myenv.ConfError("Link time optimization requested, "
++# "but selected compiler does not honor -flto")
++#
++# if myenv.TargetOSIs('darwin'):
++# myenv.AddToLINKFLAGSIfSupported('-Wl,-object_path_lto,${TARGET}.lto')
++# else:
++# # According to intel benchmarks -fno-plt increases perf
++# # See PM-2215
++# if linker_ld != "gold":
++# myenv.ConfError("lto compilation currently only works with the --linker=gold")
++# if link_model != "object":
++# myenv.ConfError(
++# "lto compilation currently only works with the --link-model=object")
++# if not myenv.AddToCCFLAGSIfSupported('-fno-plt') or \
++# not myenv.AddToLINKFLAGSIfSupported('-fno-plt'):
++# myenv.ConfError("-fno-plt is not supported by the compiler")
++#
++# else:
++# myenv.ConfError("Don't know how to enable --lto on current toolchain")
+
+ if get_option('runtime-hardening') == "on" and optBuild != "off":
+ # Older glibc doesn't work well with _FORTIFY_SOURCE=2. Selecting 2.11 as the minimum was an
+@@ -5263,16 +5265,17 @@ def doConfigure(myenv):
+ "BOOST_LOG_NO_SHORTHAND_NAMES",
+ "BOOST_LOG_USE_NATIVE_SYSLOG",
+ "BOOST_LOG_WITHOUT_THREAD_ATTR",
++ "BOOST_LOG_DYN_LINK",
+ "BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS",
+ "BOOST_SYSTEM_NO_DEPRECATED",
+ "BOOST_THREAD_USES_DATETIME",
+ ("BOOST_THREAD_VERSION", "5"),
+ ])
+
+- if link_model.startswith("dynamic") and not link_model == 'dynamic-sdk':
+- conf.env.AppendUnique(CPPDEFINES=[
+- "BOOST_LOG_DYN_LINK",
+- ])
++# if link_model.startswith("dynamic") and not link_model == 'dynamic-sdk':
++# conf.env.AppendUnique(CPPDEFINES=[
++# "BOOST_LOG_DYN_LINK",
++# ])
+
+ if use_system_version_of_library("boost"):
+ if not conf.CheckCXXHeader("boost/filesystem/operations.hpp"):
+@@ -5473,6 +5476,8 @@ def doConfigure(myenv):
+
+ mongoc_mode = get_option('use-system-mongo-c')
+ conf.env['MONGO_HAVE_LIBMONGOC'] = False
++ # conf.env.ParseConfig('pkg-config libbson-1.0 libmongoc-1.0 --cflags')
++ # conf.env['LIBDEPS_LIBBSON_SYSLIBDEP'] = 'bson-1.0'
+ if mongoc_mode != 'off':
+ if conf.CheckLibWithHeader(
+ ["mongoc-1.0"],