94 lines
4.3 KiB
Diff
94 lines
4.3 KiB
Diff
|
diff --git a/SConstruct b/SConstruct
|
||
|
index 8367691..9061849 100644
|
||
|
--- a/SConstruct
|
||
|
+++ b/SConstruct
|
||
|
@@ -2441,7 +2441,6 @@ if env.TargetOSIs('posix'):
|
||
|
|
||
|
# -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used.
|
||
|
env.Append( CCFLAGS=["-fasynchronous-unwind-tables",
|
||
|
- "-ggdb" if not env.TargetOSIs('emscripten') else "-g",
|
||
|
"-Wall",
|
||
|
"-Wsign-compare",
|
||
|
"-Wno-unknown-pragmas",
|
||
|
@@ -2497,6 +2496,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
|
||
|
@@ -2549,7 +2550,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:
|
||
|
@@ -2968,43 +2969,6 @@ 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 == '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 myenv.AddToLINKFLAGSIfSupported('-fuse-ld=lld'):
|
||
|
- myenv.AddToLINKFLAGSIfSupported('-fuse-ld=gold')
|
||
|
- else:
|
||
|
- myenv.AddToLINKFLAGSIfSupported('-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 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, help=False, custom_tests = {
|
||
|
'CheckForCXXLink': CheckForCXXLink,
|
||
|
})
|
||
|
@@ -4344,17 +4308,11 @@ def doConfigure(myenv):
|
||
|
"BOOST_LOG_NO_SHORTHAND_NAMES",
|
||
|
"BOOST_LOG_USE_NATIVE_SYSLOG",
|
||
|
"BOOST_LOG_WITHOUT_THREAD_ATTR",
|
||
|
+ "BOOST_LOG_DYN_LINK",
|
||
|
"ABSL_FORCE_ALIGNED_ACCESS",
|
||
|
]
|
||
|
)
|
||
|
|
||
|
- 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" ):
|
||
|
myenv.ConfError("can't find boost headers")
|