diff options
-rw-r--r-- | SConstruct | 63 | ||||
-rwxr-xr-x[-rw-r--r--] | buildscripts/libdeps/analyzer_unittests.py | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | buildscripts/libdeps/libdeps/graph.py | 1 | ||||
-rw-r--r-- | site_scons/libdeps_next.py | 98 | ||||
-rw-r--r-- | src/mongo/db/SConscript | 6 | ||||
-rw-r--r-- | src/mongo/db/catalog/SConscript | 9 | ||||
-rw-r--r-- | src/mongo/db/commands/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/concurrency/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/exec/sbe/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/ftdc/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/index/SConscript | 6 | ||||
-rw-r--r-- | src/mongo/db/matcher/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/query/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/repl/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/stats/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/storage/SConscript | 16 | ||||
-rw-r--r-- | src/mongo/db/storage/devnull/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/executor/SConscript | 6 |
18 files changed, 20 insertions, 214 deletions
diff --git a/SConstruct b/SConstruct index 14c1393190c..09095be68b7 100644 --- a/SConstruct +++ b/SConstruct @@ -2002,23 +2002,14 @@ if env['_LIBDEPS'] == '$_LIBDEPS_OBJS': # command but instead runs a function. env["BUILDERS"]["StaticLibrary"].action = SCons.Action.Action(write_uuid_to_file, "Generating placeholder library $TARGET") -libdeps_typeinfo = False - if get_option('build-tools') == 'next': import libdeps_next as libdeps - if (has_option('sanitize') and 'undefined' in get_option('sanitize') - and env.ToolchainIs('clang', 'gcc') - and (env.TargetOSIs('posix') and not env.TargetOSIs('darwin'))): - - libdeps_typeinfo = True - libdeps.setup_environment( env, emitting_shared=(link_model.startswith("dynamic")), debug=get_option('libdeps-debug'), - linting=get_option('libdeps-linting'), - sanitize_typeinfo=libdeps_typeinfo) + linting=get_option('libdeps-linting')) else: import libdeps @@ -3684,12 +3675,29 @@ def doConfigure(myenv): if not using_fsan and not AddToCCFLAGSIfSupported(myenv, "-fno-sanitize-recover"): AddToCCFLAGSIfSupported(myenv, "-fno-sanitize-recover=undefined") myenv.AppendUnique(CPPDEFINES=['UNDEFINED_BEHAVIOR_SANITIZER']) + # If anything is changed, added, or removed in ubsan_options, be # sure to make the corresponding changes to the appropriate build # variants in etc/evergreen.yml ubsan_options = "print_stacktrace=1" myenv['ENV']['UBSAN_OPTIONS'] = ubsan_options + symbolizer_option + # In dynamic builds, the `vptr` sanitizer check can + # require additional LIBDEPS edges. That is very + # inconvenient, because such builds can't use z,defs. The + # result is a very fragile link graph, where refactoring + # the link graph in one place can have surprising effects + # in others. Instead, we just disable the `vptr` sanitizer + # for dynamic builds. We tried some other approaches in + # SERVER-49798 of adding a new LIBDEPS_TYPEINFO type, but + # that didn't address the fundamental issue that the + # correct link graph for a dynamic+ubsan build isn't the + # same as the correct link graph for a regular dynamic + # build. + if link_model == "dynamic": + if AddToCCFLAGSIfSupported(myenv, "-fno-sanitize=vptr"): + myenv.AppendUnique(LINKFLAGS=["-fno-sanitize=vptr"]) + if myenv.ToolchainIs('msvc') and optBuild: # http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx # @@ -4734,41 +4742,6 @@ if get_option('ninja') != 'disabled': new_emitter = SCons.Builder.ListEmitter([base_emitter, winlink_workaround_emitter]) builder.emitter = new_emitter - if libdeps_typeinfo and get_option('build-tools') == 'next': - # ninja will not handle the list action libdeps creates so in order for - # to build ubsan with ninja, we need to undo the list action and then - # create a special rule to handle the shlink typeinfo checks. If ninja is - # updated to handle list actions correctly, this whole section can go away. - base_action = env['BUILDERS']['SharedLibrary'].action - base_action.list[:] = base_action.list[:-2] - - # Now we rewrite the command and set it up as a rule for ninja shlinks. We are - # cramming this all into a single command for ninja, so it is broken apart with - # commentation for each part. - env.NinjaRule( - "SHLINK", - libdeps.get_typeinfo_link_command().format( - ninjalink="$env$SHLINK @$out.rsp && ", - ldpath="", - target="${out}", - libdeps_tags="printenv", - tag='libdeps-cyclic-typeinfo' - ), - description="Linking $out", - deps=None, - pool="local_pool", - use_depfile=False, - use_response_file=True) - - provider = env.NinjaGenResponseFileProvider( - "SHLINK", - "$SHLINK", - custom_env={ - "TYPEINFO_TAGS":"'$LIBDEPS_TAGS'", - "LD_LIBRARY_PATH":"'$_LIBDEPS_LD_PATH'"}) - env.NinjaRuleMapping("${SHLINKCOM}", provider) - env.NinjaRuleMapping(env["SHLINKCOM"], provider) - # idlc.py has the ability to print it's implicit dependencies # while generating, Ninja can consume these prints using the # deps=msvc method. diff --git a/buildscripts/libdeps/analyzer_unittests.py b/buildscripts/libdeps/analyzer_unittests.py index b1f0fde43a3..b831aab73a6 100644..100755 --- a/buildscripts/libdeps/analyzer_unittests.py +++ b/buildscripts/libdeps/analyzer_unittests.py @@ -61,7 +61,6 @@ def get_double_diamond_mock_graph(): "Public": 1, "Private": 2, "Interface": 3, - "Typeinfo": 4 }''' # builds a graph of mostly public edges that looks like this: @@ -145,7 +144,6 @@ def get_basic_mock_graph(): "Public": 1, "Private": 2, "Interface": 3, - "Typeinfo": 4 }''' # builds a graph of mostly public edges: diff --git a/buildscripts/libdeps/libdeps/graph.py b/buildscripts/libdeps/libdeps/graph.py index 2e7dbbcd234..161a7e65dfb 100644..100755 --- a/buildscripts/libdeps/libdeps/graph.py +++ b/buildscripts/libdeps/libdeps/graph.py @@ -116,7 +116,6 @@ class LibdepsGraph(networkx.DiGraph): self._deptypes['Public'] = self._deptypes.get('Public', 1) self._deptypes['Private'] = self._deptypes.get('Private', 2) self._deptypes['Interface'] = self._deptypes.get('Interface', 3) - self._deptypes['Typeinfo'] = self._deptypes.get('Typeinfo', 4) return self._deptypes[deptype] diff --git a/site_scons/libdeps_next.py b/site_scons/libdeps_next.py index 2e850677187..3a7e7a2bac2 100644 --- a/site_scons/libdeps_next.py +++ b/site_scons/libdeps_next.py @@ -86,7 +86,6 @@ class Constants: LibdepsNoInherit = "LIBDEPS_NO_INHERIT" LibdepsInterface ="LIBDEPS_INTERFACE" LibdepsPrivate = "LIBDEPS_PRIVATE" - LibdepsTypeinfo = "LIBDEPS_TYPEINFO" LibdepsTags = "LIBDEPS_TAGS" LibdepsTagExpansion = "LIBDEPS_TAG_EXPANSIONS" MissingLibdep = "MISSING_LIBDEP_" @@ -101,7 +100,6 @@ class deptype(tuple, enum.Enum): Public: tuple = (1, 'PUBLIC') Private: tuple = (2, 'PRIVATE') Interface: tuple = (3, 'INTERFACE') - Typeinfo: tuple = (4, 'TYPEINFO') def __lt__(self, other): if self.__class__ is other.__class__: @@ -610,20 +608,11 @@ dependency_visibility_honored = { deptype.Private: deptype.Private, } -dependency_visibility_typeinfo = { - deptype.Global: deptype.Private, - deptype.Interface: deptype.Interface, - deptype.Public: deptype.Public, - deptype.Private: deptype.Private, - deptype.Typeinfo: deptype.Private, -} - dep_type_to_env_var = { deptype.Global: Constants.LibdepsGlobal, deptype.Interface: Constants.LibdepsInterface, deptype.Public: Constants.Libdeps, deptype.Private: Constants.LibdepsPrivate, - deptype.Typeinfo: Constants.LibdepsTypeinfo, } class DependencyCycleError(SCons.Errors.UserError): @@ -808,7 +797,6 @@ def update_scanner(env, builder_name=None, debug=False): print(f" private: {env.get(Constants.LibdepsPrivate, None)}") print(f" public: {env.get(Constants.Libdeps, None)}") print(f" interface: {env.get(Constants.LibdepsInterface, None)}") - print(f" typeinfo: {env.get(Constants.LibdepsTypeinfo, None)}") print(f" no_inherit: {env.get(Constants.LibdepsNoInherit, None)}") if old_scanner: @@ -1065,7 +1053,6 @@ def libdeps_emitter(target, source, env, debug=False, builder=None, visibility_m print(f" private: {env.get(Constants.LibdepsPrivate, None)}") print(f" public: {env.get(Constants.Libdeps, None)}") print(f" interface: {env.get(Constants.LibdepsInterface, None)}") - print(f" typeinfo: {env.get(Constants.LibdepsTypeinfo, None)}") print(f" no_inherit: {env.get(Constants.LibdepsNoInherit, None)}") print(f" Edges:") @@ -1257,59 +1244,6 @@ def generate_libdeps_graph(env): env.Depends(graph_node, [graph_hash] + env.Glob("#buildscripts/libdeps/libdeps/*")) -def get_typeinfo_link_command(): - if LibdepLinter.skip_linting: - return "{ninjalink}" - else: - return ( - # This command is has flexibility to be used by the ninja tool, but the ninja tool - # does not currently support list actions as the command is used below, so we can - # allow ninja to put its link command here in front simulating a list action. For - # a normal scons build ninjalink should be empty string. - # TODO: When the ninja tool supports multi rule type link actions this can go - # away and turn into functions actions. - # https://jira.mongodb.org/browse/SERVER-51435 - # https://jira.mongodb.org/browse/SERVER-51436 - "{ninjalink}" - - # Dependencies must exist in a shared lib that was built as a - # dependent to the current node, so LD_LIBRARY_PATH should be set to - # include all the LIBDEPS directories. - + "UNDEF_SYMBOLS=$$({ldpath}ldd -r {target} " - - # filter out only undefined symbols and then remove the sanitizer symbols because - # we are focused on the missing mongo db symbols. - + "| grep '^undefined symbol: ' | grep -v '__[a-z]*san' " - - # Demangle the remaining symbols, and filter out mongo typeinfo symbols for the current library. - + "| c++filt | grep 'mongo::' | grep 'typeinfo for' | grep {target}) " - - # Check if a exemption tag exists to see if we should skip this error, or if - # we are in libdeps printing mode, disregard its existence since we will always print - + "&& {} ".format("true" if LibdepLinter.print_linter_errors else " [ -z \"$$({libdeps_tags} | grep \"{tag}\")\" ]") - - # output the missing symbols to stdout and use sed to insert tabs at the front of - # each new line for neatness. - + r"""&& echo '\n\tLibdepLinter:\n\t\tMissing typeinfo definitions:' """ - + r"""&& echo "$$UNDEF_SYMBOLS\n" | sed 's/^/\t\t\t/g' 1>&2 """ - - # Fail the build if we found issues and are not in print mode. - + "&& return {} ".format(int(not LibdepLinter.print_linter_errors)) - - # The final checks will pass the build if the tag exists or no symbols were found. - + "|| {libdeps_tags} | grep -q \"{tag}\" || [ -z \"$$UNDEF_SYMBOLS\" ]") - -def get_libdeps_ld_path(source, target, env, for_signature): - result = "" - for libdep in env['_LIBDEPS_GET_LIBS'](source, target, env, for_signature): - if libdep: - result += os.path.dirname(str(libdep)) + ":" - if result: - result = result[:-1] - - return [result] - - def generate_graph(env, target, source): libdeps_graph = env.GetLibdepsGraph() @@ -1345,7 +1279,7 @@ def generate_graph(env, target, source): print(line.replace(str(env.Dir("$BUILD_DIR").abspath + os.sep), ''), end='') -def setup_environment(env, emitting_shared=False, debug='off', linting='on', sanitize_typeinfo=False): +def setup_environment(env, emitting_shared=False, debug='off', linting='on'): """Set up the given build environment to do LIBDEPS tracking.""" LibdepLinter.skip_linting = linting == 'off' @@ -1359,39 +1293,11 @@ def setup_environment(env, emitting_shared=False, debug='off', linting='on', san env["_LIBDEPS_TAGS"] = expand_libdeps_tags env["_LIBDEPS_GET_LIBS"] = partial(get_libdeps, debug=debug) env["_LIBDEPS_OBJS"] = partial(get_libdeps_objs, debug=debug) - env["_LIBDEPS_LD_PATH"] = partial(get_libdeps_ld_path) env["_SYSLIBDEPS"] = partial(get_syslibdeps, debug=debug, shared=emitting_shared) env[Constants.Libdeps] = SCons.Util.CLVar() env[Constants.SysLibdeps] = SCons.Util.CLVar() - if sanitize_typeinfo and not LibdepLinter.skip_linting: - - # Some sanitizers, notably the vptr check of ubsan, can cause - # additional symbol dependencies to exist. Unfortunately, - # building with the sanitizers also requires that we not build - # with -z,defs, which means that we cannot make such undefined - # symbols errors at link time. We can however hack together - # something which looks for undefined typeinfo nodes in the - # mongo namespace using `ldd -r`. See - # https://jira.mongodb.org/browse/SERVER-49798 for more - # details. - - base_action = env['BUILDERS']['SharedLibrary'].action - if not isinstance(base_action, SCons.Action.ListAction): - base_action = SCons.Action.ListAction([base_action]) - - base_action.list.extend([ - SCons.Action.Action( - get_typeinfo_link_command().format( - ninjalink="", - ldpath="LD_LIBRARY_PATH=$_LIBDEPS_LD_PATH ", - target="${TARGET}", - libdeps_tags="echo \"$LIBDEPS_TAGS\"", - tag='libdeps-cyclic-typeinfo'), - None) - ]) - # Create the alias for graph generation, the existence of this alias # on the command line will cause the libdeps-graph generation to be # configured. @@ -1483,7 +1389,7 @@ def setup_environment(env, emitting_shared=False, debug='off', linting='on', san libdeps_emitter, debug=debug, builder="SharedLibrary", - visibility_map=dependency_visibility_typeinfo if sanitize_typeinfo else dependency_visibility_honored + visibility_map=dependency_visibility_honored ), SHLIBEMITTER=lambda target, source, env: env["LIBDEPS_SHLIBEMITTER"](target, source, env), LIBDEPS_PROGEMITTER=partial( diff --git a/src/mongo/db/SConscript b/src/mongo/db/SConscript index 64d8c5599f1..4aac2ec108f 100644 --- a/src/mongo/db/SConscript +++ b/src/mongo/db/SConscript @@ -608,9 +608,6 @@ env.Library( 'commands/test_commands_enabled', 'service_context', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/commands', - ] ) env.Library( @@ -787,9 +784,6 @@ env.Library( LIBDEPS=[ '$BUILD_DIR/mongo/base', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.Library( diff --git a/src/mongo/db/catalog/SConscript b/src/mongo/db/catalog/SConscript index 51acb7d902a..9af80095dd4 100644 --- a/src/mongo/db/catalog/SConscript +++ b/src/mongo/db/catalog/SConscript @@ -184,9 +184,6 @@ env.Library( '$BUILD_DIR/mongo/base', 'index_catalog_entry', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.Library( @@ -227,9 +224,6 @@ env.Library( LIBDEPS=[ '$BUILD_DIR/mongo/base', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ] ) env.Library( @@ -521,9 +515,6 @@ env.Library( LIBDEPS_PRIVATE=[ '$BUILD_DIR/mongo/db/catalog/index_catalog', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/index/index_access_methods' - ] ) env.Library( diff --git a/src/mongo/db/commands/SConscript b/src/mongo/db/commands/SConscript index bc233f02e0f..dc15f680bdf 100644 --- a/src/mongo/db/commands/SConscript +++ b/src/mongo/db/commands/SConscript @@ -45,9 +45,6 @@ env.Library( '$BUILD_DIR/mongo/util/processinfo', 'server_status_core', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/rpc/rpc', - ] ) env.Library( diff --git a/src/mongo/db/concurrency/SConscript b/src/mongo/db/concurrency/SConscript index 37b0095d141..7967f6579c2 100644 --- a/src/mongo/db/concurrency/SConscript +++ b/src/mongo/db/concurrency/SConscript @@ -78,9 +78,6 @@ env.Library( LIBDEPS_PRIVATE=[ '$BUILD_DIR/mongo/base', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.Benchmark( diff --git a/src/mongo/db/exec/sbe/SConscript b/src/mongo/db/exec/sbe/SConscript index fd10b895f31..b4ca947e155 100644 --- a/src/mongo/db/exec/sbe/SConscript +++ b/src/mongo/db/exec/sbe/SConscript @@ -115,9 +115,6 @@ env.Library( '$BUILD_DIR/mongo/unittest/unittest', 'query_sbe', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context_test_fixture' - ], ) env.CppUnitTest( diff --git a/src/mongo/db/ftdc/SConscript b/src/mongo/db/ftdc/SConscript index 35e20fce5ea..00f6e4cb64a 100644 --- a/src/mongo/db/ftdc/SConscript +++ b/src/mongo/db/ftdc/SConscript @@ -77,9 +77,6 @@ env.Library( '$BUILD_DIR/mongo/db/auth/auth', '$BUILD_DIR/mongo/db/auth/authprivilege', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/rpc/rpc', - ] ) env.Library( diff --git a/src/mongo/db/index/SConscript b/src/mongo/db/index/SConscript index 0b968365321..3313f18deb4 100644 --- a/src/mongo/db/index/SConscript +++ b/src/mongo/db/index/SConscript @@ -113,9 +113,6 @@ env.Library( LIBDEPS=[ '$BUILD_DIR/mongo/base', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) serveronlyEnv = env.Clone() @@ -145,9 +142,6 @@ serveronlyEnv.Library( '$BUILD_DIR/mongo/idl/server_parameter', 'skipped_record_tracker', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/matcher/expressions', - ] ) env.Library( diff --git a/src/mongo/db/matcher/SConscript b/src/mongo/db/matcher/SConscript index eef4a2f9be7..aa1badd3cb7 100644 --- a/src/mongo/db/matcher/SConscript +++ b/src/mongo/db/matcher/SConscript @@ -94,9 +94,6 @@ env.Library( '$BUILD_DIR/mongo/scripting/scripting_server', 'expressions', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/index/index_access_methods' - ] ) env.CppUnitTest( diff --git a/src/mongo/db/query/SConscript b/src/mongo/db/query/SConscript index 265ceed9445..dad8a374ddb 100644 --- a/src/mongo/db/query/SConscript +++ b/src/mongo/db/query/SConscript @@ -305,9 +305,6 @@ env.Library( '$BUILD_DIR/mongo/db/concurrency/write_conflict_exception', '$BUILD_DIR/mongo/db/storage/recovery_unit_base', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.CppUnitTest( diff --git a/src/mongo/db/repl/SConscript b/src/mongo/db/repl/SConscript index 5273dbf6bc4..88c49da1d7f 100644 --- a/src/mongo/db/repl/SConscript +++ b/src/mongo/db/repl/SConscript @@ -74,9 +74,6 @@ env.Library( '$BUILD_DIR/mongo/client/authentication', '$BUILD_DIR/mongo/db/auth/authorization_manager_global', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/client/clientdriver_minimal', - ] ) env.Library( diff --git a/src/mongo/db/stats/SConscript b/src/mongo/db/stats/SConscript index 203737ba302..d7a439cd38e 100644 --- a/src/mongo/db/stats/SConscript +++ b/src/mongo/db/stats/SConscript @@ -89,9 +89,6 @@ env.Library( '$BUILD_DIR/mongo/idl/feature_flag', '$BUILD_DIR/mongo/idl/server_parameter', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.Library( diff --git a/src/mongo/db/storage/SConscript b/src/mongo/db/storage/SConscript index 4a2297efea8..7ef0a73f044 100644 --- a/src/mongo/db/storage/SConscript +++ b/src/mongo/db/storage/SConscript @@ -222,9 +222,6 @@ env.Library( 'index_entry_comparison', 'key_string', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context_test_fixture', - ] ) env.Library( @@ -251,9 +248,6 @@ env.Library( '$BUILD_DIR/mongo/db/storage/storage_options', '$BUILD_DIR/mongo/unittest/unittest', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context_test_fixture', - ] ) @@ -267,9 +261,6 @@ env.Library( '$BUILD_DIR/mongo/db/service_context', '$BUILD_DIR/mongo/unittest/unittest', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context_test_fixture', - ] ) env.Library( @@ -340,10 +331,6 @@ env.Library( '$BUILD_DIR/mongo/util/fail_point', 'recovery_unit_base', ], - LIBDEPS_TAGS=[ - 'libdeps-cyclic-typeinfo' - ], - ) env.Library( @@ -445,9 +432,6 @@ env.Library( '$BUILD_DIR/mongo/util/fail_point', 'flow_control_parameters', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/repl/repl_coordinator_interface', - ] ) env.CppUnitTest( diff --git a/src/mongo/db/storage/devnull/SConscript b/src/mongo/db/storage/devnull/SConscript index d5f1a5c30c8..d1f22c92a51 100644 --- a/src/mongo/db/storage/devnull/SConscript +++ b/src/mongo/db/storage/devnull/SConscript @@ -17,9 +17,6 @@ env.Library( LIBDEPS_PRIVATE=[ '$BUILD_DIR/mongo/db/catalog/collection_options', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.Library( diff --git a/src/mongo/executor/SConscript b/src/mongo/executor/SConscript index aebd9811107..a382c094de8 100644 --- a/src/mongo/executor/SConscript +++ b/src/mongo/executor/SConscript @@ -149,9 +149,6 @@ env.Library( LIBDEPS=[ '$BUILD_DIR/mongo/base', ], - LIBDEPS_TYPEINFO=[ - '$BUILD_DIR/mongo/db/service_context', - ], ) env.Library( @@ -240,9 +237,6 @@ env.Library( LIBDEPS=[ '$BUILD_DIR/mongo/base', ], - LIBDEPS_TYPEINFO=[ - 'network_interface', - ] ) env.Library( |