From https://aur.archlinux.org/cgit/aur.git/tree/mongodb-8.0.12-sconstruct.patch?h=mongodb
diff --git a/SConstruct.orig b/SConstruct
index 74a32f0..d9dba9f 100644
--- a/SConstruct.orig
+++ b/SConstruct
@@ -3123,7 +3123,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",
@@ -3191,6 +3191,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
@@ -3243,7 +3245,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:
@@ -3637,35 +3639,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,
@@ -4763,42 +4765,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
@@ -5261,16 +5263,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"):
@@ -5471,6 +5474,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"],
