diff options
-rw-r--r-- | SConstruct | 440 | ||||
-rw-r--r-- | etc/evergreen.yml | 19 | ||||
-rw-r--r-- | etc/perf.yml | 2 | ||||
-rwxr-xr-x | etc/system_perf.yml | 2 | ||||
-rw-r--r-- | jstests/SConscript | 3 | ||||
-rw-r--r-- | site_scons/site_tools/mongo_libfuzzer.py | 5 | ||||
-rw-r--r-- | site_scons/site_tools/mongo_unittest.py | 12 | ||||
-rw-r--r-- | src/mongo/SConscript | 222 | ||||
-rw-r--r-- | src/mongo/dbtests/SConscript | 6 | ||||
-rw-r--r-- | src/mongo/embedded/mongo_embedded/SConscript | 33 | ||||
-rw-r--r-- | src/mongo/embedded/mongoc_embedded/SConscript | 32 | ||||
-rw-r--r-- | src/mongo/embedded/stitch_support/SConscript | 13 | ||||
-rw-r--r-- | src/mongo/tools/SConscript | 3 | ||||
-rw-r--r-- | src/third_party/IntelRDFPMathLib20U1/SConscript | 81 | ||||
-rw-r--r-- | src/third_party/wiredtiger/SConscript | 5 |
15 files changed, 301 insertions, 577 deletions
diff --git a/SConstruct b/SConstruct index 069cadba135..d2e58c734a1 100644 --- a/SConstruct +++ b/SConstruct @@ -113,10 +113,6 @@ add_option('ninja', help='Enable the build.ninja generator tool stable or canary version', ) -add_option('prefix', - help='installation prefix (conficts with DESTDIR, PREFIX, and --install-mode=hygienic)', -) - add_option('legacy-tarball', choices=['true', 'false'], default='false', @@ -134,7 +130,7 @@ add_option('lint-scope', ) add_option('install-mode', - choices=['legacy', 'hygienic'], + choices=['hygienic'], default='hygienic', help='select type of installation', nargs=1, @@ -149,11 +145,6 @@ add_option('install-action', type='choice', ) -add_option('nostrip', - help='do not strip installed binaries', - nargs=0, -) - add_option('build-dir', default='#build', help='build output directory', @@ -243,7 +234,7 @@ add_option('separate-debug', choices=['on', 'off'], const='on', default='off', - help='Produce separate debug files (only effective in --install-mode=hygienic)', + help='Produce separate debug files', nargs='?', type='choice', ) @@ -280,11 +271,6 @@ add_option('llvm-symbolizer', help='name of (or path to) the LLVM symbolizer', ) -add_option('durableDefaultOn', - help='have durable default to on', - nargs=0, -) - add_option('allocator', choices=["auto", "system", "tcmalloc", "tcmalloc-experimental"], default="auto", @@ -653,27 +639,6 @@ for vf in variables_files: else: print("IGNORING missing variable customization file {}".format(vf)) -# Attempt to prevent confusion between the different ways of -# specifying file placement between hygienic and non-hygienic -# modes. Re-interpret a value provided for the legacy '--prefix' flag -# as setting `DESTDIR` instead. Note that we can't validate things -# passed in via variables_files, so this is imperfect. However, it is -# also temporary. -if get_option('install-mode') == 'hygienic': - if has_option('prefix'): - print("Cannot use the '--prefix' option with '--install-mode=hygienic'. Use the DESTDIR and PREFIX Variables instead") - Exit(1) -else: - if 'PREFIX' in ARGUMENTS: - print("Cannot use the 'PREFIX' Variable without '--install-mode=hygienic'") - Exit(1) - if 'DESTDIR' in ARGUMENTS: - print("Cannot use the 'DESTDIR' Variable without '--install-mode=hygienic', use the '--prefix' flag instead") - Exit(1) - - if has_option('prefix'): - ARGUMENTS['DESTDIR'] = get_option('prefix') - env_vars = Variables( files=variables_files, args=ARGUMENTS @@ -738,7 +703,7 @@ env_vars.Add('CXXFLAGS', converter=variable_shlex_converter) env_vars.Add('DESTDIR', - help='Where hygienic builds will install files', + help='Where builds will install files', default='$BUILD_ROOT/install') env_vars.Add('DSYMUTIL', @@ -1077,11 +1042,8 @@ if not serverJs and not usemozjs: envDict = dict(BUILD_ROOT=buildDir, BUILD_DIR=make_variant_dir_generator(), DIST_ARCHIVE_SUFFIX='.tgz', - DIST_BINARIES=[], MODULE_BANNERS=[], MODULE_INJECTORS=dict(), - ARCHIVE_ADDITION_DIR_MAP={}, - ARCHIVE_ADDITIONS=[], PYTHON="$( {} $)".format(sys.executable), SERVER_ARCHIVE='${SERVER_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', UNITTEST_ALIAS='install-unittests', @@ -1100,13 +1062,6 @@ envDict = dict(BUILD_ROOT=buildDir, LIBDEPS_TAG_EXPANSIONS=[], ) -# TODO: Remove these when hygienic builds are default. -if get_option('install-mode') != 'hygienic': - envDict["UNITTEST_ALIAS"] = "unittests" - envDict["INTEGRATION_TEST_ALIAS"] = "integration_tests" - envDict["LIBFUZZER_TEST_ALIAS"] = "libfuzzer_tests" - envDict["BENCHMARK_ALIAS"] = "benchmarks" - env = Environment(variables=env_vars, **envDict) # Only print the spinner if stdout is a tty @@ -1415,7 +1370,7 @@ if has_option("cache"): # Normalize the link model. If it is auto, then for now both developer and release builds # use the "static" mode. Somday later, we probably want to make the developer build default -# dynamic, but that will require the hygienic builds project. +# dynamic. link_model = get_option('link-model') if link_model == "auto": link_model = "static" @@ -1453,7 +1408,7 @@ if use_libunwind == True: # Windows can't currently support anything other than 'object' or 'static', until -# we have both hygienic builds and have annotated functions for export. +# we have annotated functions for export. if env.TargetOSIs('windows') and link_model not in ['object', 'static', 'dynamic-sdk']: env.FatalError("Windows builds must use the 'object', 'dynamic-sdk', or 'static' link models") @@ -3973,223 +3928,216 @@ if get_option('ninja') != 'disabled': env.NinjaRegisterFunctionHandler("test_list_builder_action", ninja_test_list_builder) -# TODO: Later, this should live somewhere more graceful. -if get_option('install-mode') == 'hygienic': - - if get_option('separate-debug') == "on" or env.TargetOSIs("windows"): - - # The current ninja builder can't handle --separate-debug on non-Windows platforms - # like linux or macOS, because they depend on adding extra actions to the link step, - # which cannot be translated into the ninja bulider. - if not env.TargetOSIs("windows") and get_option('ninja') != 'disabled': - env.FatalError("Cannot use --separate-debug with Ninja on non-Windows platforms.") - - separate_debug = Tool('separate_debug') - if not separate_debug.exists(env): - env.FatalError('Cannot honor --separate-debug because the separate_debug.py Tool reported as nonexistent') - separate_debug(env) - - env["AUTO_ARCHIVE_TARBALL_SUFFIX"] = "tgz" +if get_option('separate-debug') == "on" or env.TargetOSIs("windows"): - env["AIB_META_COMPONENT"] = "all" - env["AIB_BASE_COMPONENT"] = "common" - env["AIB_DEFAULT_COMPONENT"] = "mongodb" + # The current ninja builder can't handle --separate-debug on non-Windows platforms + # like linux or macOS, because they depend on adding extra actions to the link step, + # which cannot be translated into the ninja bulider. + if not env.TargetOSIs("windows") and get_option('ninja') != 'disabled': + env.FatalError("Cannot use --separate-debug with Ninja on non-Windows platforms.") - env.Tool('auto_install_binaries') - env.Tool('auto_archive') + separate_debug = Tool('separate_debug') + if not separate_debug.exists(env): + env.FatalError('Cannot honor --separate-debug because the separate_debug.py Tool reported as nonexistent') + separate_debug(env) - env.DeclareRoles( - roles=[ +env["AUTO_ARCHIVE_TARBALL_SUFFIX"] = "tgz" - env.Role( - name="base", - ), +env["AIB_META_COMPONENT"] = "all" +env["AIB_BASE_COMPONENT"] = "common" +env["AIB_DEFAULT_COMPONENT"] = "mongodb" - env.Role( - name="debug", - ), +env.Tool('auto_install_binaries') +env.Tool('auto_archive') - env.Role( - name="dev", - dependencies=[ - "runtime" - ], - ), - - env.Role( - name="meta", - ), - - env.Role( - name="runtime", - dependencies=[ - # On windows, we want the runtime role to depend - # on the debug role so that PDBs end in the - # runtime package. - "debug" if env.TargetOSIs('windows') else None, - ], - silent=True, - ), - ], - base_role="base", - meta_role="meta", - ) +env.DeclareRoles( + roles=[ - def _aib_debugdir(source, target, env, for_signature): - for s in source: - origin = getattr(s.attributes, "debug_file_for", None) - oentry = env.Entry(origin) - osuf = oentry.get_suffix() - map_entry = env["AIB_SUFFIX_MAP"].get(osuf) - if map_entry: - return map_entry[0] - env.FatalError("Unable to find debuginfo file in _aib_debugdir: (source='{}')".format(str(source))) - - env["PREFIX_DEBUGDIR"] = _aib_debugdir - - env.AddSuffixMapping({ - "$PROGSUFFIX": env.SuffixMap( - directory="$PREFIX_BINDIR", - default_role="runtime", + env.Role( + name="base", ), - "$SHLIBSUFFIX": env.SuffixMap( - directory="$PREFIX_BINDIR" \ - if mongo_platform.get_running_os_name() == "windows" \ - else "$PREFIX_LIBDIR", - default_role="runtime", + env.Role( + name="debug", ), - ".debug": env.SuffixMap( - directory="$PREFIX_DEBUGDIR", - default_role="debug", + env.Role( + name="dev", + dependencies=[ + "runtime" + ], ), - ".dSYM": env.SuffixMap( - directory="$PREFIX_DEBUGDIR", - default_role="debug", + env.Role( + name="meta", ), - ".pdb": env.SuffixMap( - directory="$PREFIX_DEBUGDIR", - default_role="debug", + env.Role( + name="runtime", + dependencies=[ + # On windows, we want the runtime role to depend + # on the debug role so that PDBs end in the + # runtime package. + "debug" if env.TargetOSIs('windows') else None, + ], + silent=True, ), - }) - - env.AddPackageNameAlias( - component="dist", - role="runtime", - name="mongodb-dist", - ) + ], + base_role="base", + meta_role="meta", +) - env.AddPackageNameAlias( - component="dist", - role="debug", - name="mongodb-dist-debugsymbols", - ) +def _aib_debugdir(source, target, env, for_signature): + for s in source: + origin = getattr(s.attributes, "debug_file_for", None) + oentry = env.Entry(origin) + osuf = oentry.get_suffix() + map_entry = env["AIB_SUFFIX_MAP"].get(osuf) + if map_entry: + return map_entry[0] + env.FatalError("Unable to find debuginfo file in _aib_debugdir: (source='{}')".format(str(source))) + +env["PREFIX_DEBUGDIR"] = _aib_debugdir + +env.AddSuffixMapping({ + "$PROGSUFFIX": env.SuffixMap( + directory="$PREFIX_BINDIR", + default_role="runtime", + ), + + "$SHLIBSUFFIX": env.SuffixMap( + directory="$PREFIX_BINDIR" \ + if mongo_platform.get_running_os_name() == "windows" \ + else "$PREFIX_LIBDIR", + default_role="runtime", + ), + + ".debug": env.SuffixMap( + directory="$PREFIX_DEBUGDIR", + default_role="debug", + ), + + ".dSYM": env.SuffixMap( + directory="$PREFIX_DEBUGDIR", + default_role="debug", + ), + + ".pdb": env.SuffixMap( + directory="$PREFIX_DEBUGDIR", + default_role="debug", + ), +}) - env.AddPackageNameAlias( - component="dist-test", - role="runtime", - name="mongodb-binaries", - ) +env.AddPackageNameAlias( + component="dist", + role="runtime", + name="mongodb-dist", +) - env.AddPackageNameAlias( - component="dist-test", - role="debug", - name="mongo-debugsymbols", - ) +env.AddPackageNameAlias( + component="dist", + role="debug", + name="mongodb-dist-debugsymbols", +) - env.AddPackageNameAlias( - component="dbtest", - role="runtime", - name="dbtest-binary", - ) +env.AddPackageNameAlias( + component="dist-test", + role="runtime", + name="mongodb-binaries", +) - env.AddPackageNameAlias( - component="dbtest", - role="debug", - name="dbtest-debugsymbols", - ) +env.AddPackageNameAlias( + component="dist-test", + role="debug", + name="mongo-debugsymbols", +) - env.AddPackageNameAlias( - component="shell", - role="runtime", - name="mongodb-shell", - ) +env.AddPackageNameAlias( + component="dbtest", + role="runtime", + name="dbtest-binary", +) - env.AddPackageNameAlias( - component="shell", - role="debug", - name="mongodb-shell-debugsymbols", - ) +env.AddPackageNameAlias( + component="dbtest", + role="debug", + name="dbtest-debugsymbols", +) - env.AddPackageNameAlias( - component="mongocryptd", - role="runtime", - name="mongodb-cryptd", - ) +env.AddPackageNameAlias( + component="shell", + role="runtime", + name="mongodb-shell", +) - env.AddPackageNameAlias( - component="mongocryptd", - role="debug", - name="mongodb-cryptd-debugsymbols", - ) +env.AddPackageNameAlias( + component="shell", + role="debug", + name="mongodb-shell-debugsymbols", +) - env.AddPackageNameAlias( - component="mh", - role="runtime", - # TODO: we should be able to move this to where the mqlrun binary is - # defined when AIB correctly uses environments instead of hooking into - # the first environment used. - name="mh-binaries", - ) +env.AddPackageNameAlias( + component="mongocryptd", + role="runtime", + name="mongodb-cryptd", +) - env.AddPackageNameAlias( - component="mh", - role="debug", - # TODO: we should be able to move this to where the mqlrun binary is - # defined when AIB correctly uses environments instead of hooking into - # the first environment used. - name="mh-debugsymbols", - ) +env.AddPackageNameAlias( + component="mongocryptd", + role="debug", + name="mongodb-cryptd-debugsymbols", +) - if env['PLATFORM'] == 'posix': - env.AppendUnique( - RPATH=[ - # In the future when we want to improve dynamic builds - # we should set this to $PREFIX ideally - env.Literal('\\$$ORIGIN/../lib'), - ], - LINKFLAGS=[ - # Most systems *require* -z,origin to make origin work, but android - # blows up at runtime if it finds DF_ORIGIN_1 in DT_FLAGS_1. - # https://android.googlesource.com/platform/bionic/+/cbc80ba9d839675a0c4891e2ab33f39ba51b04b2/linker/linker.h#68 - # https://android.googlesource.com/platform/bionic/+/cbc80ba9d839675a0c4891e2ab33f39ba51b04b2/libc/include/elf.h#215 - '-Wl,-z,origin' if not env.TargetOSIs('android') else [], - '-Wl,--enable-new-dtags', - ], - SHLINKFLAGS=[ - # -h works for both the sun linker and the gnu linker. - "-Wl,-h,${TARGET.file}", - ] - ) - elif env['PLATFORM'] == 'darwin': - env.AppendUnique( - LINKFLAGS=[ - '-Wl,-rpath,@loader_path/../lib', - '-Wl,-rpath,@loader_path/../Frameworks' - ], - SHLINKFLAGS=[ - "-Wl,-install_name,@rpath/${TARGET.file}", - ], - ) +env.AddPackageNameAlias( + component="mh", + role="runtime", + # TODO: we should be able to move this to where the mqlrun binary is + # defined when AIB correctly uses environments instead of hooking into + # the first environment used. + name="mh-binaries", +) - env.Default(env.Alias("install-default")) +env.AddPackageNameAlias( + component="mh", + role="debug", + # TODO: we should be able to move this to where the mqlrun binary is + # defined when AIB correctly uses environments instead of hooking into + # the first environment used. + name="mh-debugsymbols", +) -elif get_option('separate-debug') == "on": - env.FatalError('Cannot use --separate-debug without --install-mode=hygienic') +if env['PLATFORM'] == 'posix': + env.AppendUnique( + RPATH=[ + # In the future when we want to improve dynamic builds + # we should set this to $PREFIX ideally + env.Literal('\\$$ORIGIN/../lib'), + ], + LINKFLAGS=[ + # Most systems *require* -z,origin to make origin work, but android + # blows up at runtime if it finds DF_ORIGIN_1 in DT_FLAGS_1. + # https://android.googlesource.com/platform/bionic/+/cbc80ba9d839675a0c4891e2ab33f39ba51b04b2/linker/linker.h#68 + # https://android.googlesource.com/platform/bionic/+/cbc80ba9d839675a0c4891e2ab33f39ba51b04b2/libc/include/elf.h#215 + '-Wl,-z,origin' if not env.TargetOSIs('android') else [], + '-Wl,--enable-new-dtags', + ], + SHLINKFLAGS=[ + # -h works for both the sun linker and the gnu linker. + "-Wl,-h,${TARGET.file}", + ] + ) +elif env['PLATFORM'] == 'darwin': + env.AppendUnique( + LINKFLAGS=[ + '-Wl,-rpath,@loader_path/../lib', + '-Wl,-rpath,@loader_path/../Frameworks' + ], + SHLINKFLAGS=[ + "-Wl,-install_name,@rpath/${TARGET.file}", + ], + ) +env.Default(env.Alias("install-default")) # If the flags in the environment are configured for -gsplit-dwarf, # inject the necessary emitter. @@ -4415,7 +4363,7 @@ if get_option("ninja") == "disabled": r"$PYTHON buildscripts\make_vcxproj.py " + msvc_version + "mongodb") vcxproj = env.Alias("vcxproj", vcxprojFile) -# TODO: maybe make these work like the other archive- hygienic aliases +# TODO: maybe make these work like the other archive- aliases # even though they aren't piped through AIB? distSrc = env.DistSrc("distsrc.tar", NINJA_SKIP=True) env.NoCache(distSrc) @@ -4509,7 +4457,7 @@ if has_option("cache"): # We need to be explicit about including $DESTDIR here, unlike most # other places. Normally, auto_install_binaries will take care of # injecting DESTDIR for us, but we aren't using that now. -resmoke_install_dir = env.subst("$DESTDIR/$PREFIX_BINDIR") if get_option("install-mode") == "hygienic" else env.Dir("#").abspath +resmoke_install_dir = env.subst("$DESTDIR/$PREFIX_BINDIR") resmoke_install_dir = os.path.normpath(resmoke_install_dir).replace("\\", r"\\") # Much blood sweat and tears were shed getting to this point. Any version of @@ -4546,18 +4494,10 @@ env.SConscript( ], ) -if get_option("install-mode") != "hygienic": - allTargets = ['core', 'tools', 'unittests', 'integration_tests', 'libfuzzer_tests', 'benchmarks'] - - if not has_option('noshell') and usemozjs: - allTargets.extend(['dbtest']) - - env.Alias('all', allTargets) - # run the Dagger tool if it's installed if should_dagger: dagger = env.Dagger('library_dependency_graph.json') - env.Depends(dagger, env.Alias("install-all") if get_option("install-mode") == "hygienic" else "all") + env.Depends(dagger, env.Alias("install-all")) dependencyDb = env.Alias("dagger", dagger) # Declare the cache prune target @@ -4572,8 +4512,10 @@ cachePrune = env.Command( env.AlwaysBuild(cachePrune) -if get_option('install-mode') == 'hygienic': - env.FinalizeInstallDependencies() + +# We have finished all SConscripts and targets, so we can ask +# auto_install_binaries to finalize the installation setup. +env.FinalizeInstallDependencies() # We don't want installing files to cause them to flow into the cache, diff --git a/etc/evergreen.yml b/etc/evergreen.yml index 4706e000c61..e0d044ceb22 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -1822,15 +1822,14 @@ functions: fi rm -rf ${install_directory|/data/mongo-install-directory} - # Only allow hygienic builds in Evergreen, and use hardlinks to - # reduce the disk space impact of installing all of the binaries and - # associated debug info. + # Use hardlinks to reduce the disk space impact of installing + # all of the binaries and associated debug info. # The expansion here is a workaround to let us set a different install-action # for tasks that don't support the one we set here. A better plan would be # to support install-action for Ninja builds directly. # TODO: https://jira.mongodb.org/browse/SERVER-48203 - extra_args="--install-mode=hygienic --install-action=${task_install_action|hardlink}" + extra_args="--install-action=${task_install_action|hardlink}" # By default, limit link jobs to one quarter of our overall -j # concurrency unless locally overridden. We do this because in @@ -11937,7 +11936,7 @@ buildvariants: variant_path_suffix: /opt/mongodbtoolchain/v3/bin lang_environment: LANG=C san_options: LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=1 - compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=address --ssl --enable-free-mon=on -j$(grep -c ^processor /proc/cpuinfo) --nostrip + compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=address --ssl --enable-free-mon=on -j$(grep -c ^processor /proc/cpuinfo) multiversion_platform: ubuntu1804 multiversion_edition: enterprise resmoke_jobs_factor: 0.3 # Avoid starting too many mongod's under ASAN build. @@ -12004,7 +12003,7 @@ buildvariants: variant_path_suffix: /opt/mongodbtoolchain/v3/bin lang_environment: LANG=C san_options: LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=1 - compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --opt=on --allocator=system --sanitize=address --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip + compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --opt=on --allocator=system --sanitize=address --ssl -j$(grep -c ^processor /proc/cpuinfo) multiversion_platform: ubuntu1804 multiversion_edition: enterprise resmoke_jobs_factor: 0.3 # Avoid starting too many mongod's under ASAN build. @@ -12031,7 +12030,7 @@ buildvariants: variant_path_suffix: /opt/mongodbtoolchain/v3/bin lang_environment: LANG=C san_options: UBSAN_OPTIONS="print_stacktrace=1" - compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --sanitize=undefined --ssl --enable-free-mon=on -j$(grep -c ^processor /proc/cpuinfo) --nostrip + compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --sanitize=undefined --ssl --enable-free-mon=on -j$(grep -c ^processor /proc/cpuinfo) multiversion_platform: ubuntu1804 multiversion_edition: enterprise resmoke_jobs_factor: 0.3 # Avoid starting too many mongod's under UBSAN build. @@ -12096,7 +12095,7 @@ buildvariants: variant_path_suffix: /opt/mongodbtoolchain/v3/bin lang_environment: LANG=C san_options: UBSAN_OPTIONS="print_stacktrace=1" LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=1 - compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined,address --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip + compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined,address --ssl -j$(grep -c ^processor /proc/cpuinfo) resmoke_jobs_factor: 0.3 # Avoid starting too many mongod's under {A,UB}SAN build. hang_analyzer_dump_core: false scons_cache_scope: shared @@ -12125,7 +12124,7 @@ buildvariants: variant_path_suffix: /opt/mongodbtoolchain/v3/bin lang_environment: LANG=C san_options: UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1" LSAN_OPTIONS="suppressions=etc/lsan.suppressions:report_objects=1" ASAN_OPTIONS=detect_leaks=1:check_initialization_order=true:strict_init_order=true:abort_on_error=1:disable_coredump=0:handle_abort=1 - compile_flags: LINKFLAGS=-nostdlib++ LIBS=stdc++ --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined,address,fuzzer --ssl -j$(grep -c ^processor /proc/cpuinfo) --nostrip + compile_flags: LINKFLAGS=-nostdlib++ LIBS=stdc++ --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=undefined,address,fuzzer --ssl -j$(grep -c ^processor /proc/cpuinfo) resmoke_jobs_factor: 0.3 # Avoid starting too many mongod's under {A,UB}SAN build. hang_analyzer_dump_core: false scons_cache_scope: shared @@ -12150,7 +12149,7 @@ buildvariants: # TODO: Remove some of the excluded tags when the Biggie storage engine is # further along in development: https://jira.mongodb.org/browse/SERVER-48325 test_flags: --storageEngine=biggie --excludeWithAnyTags=requires_persistence,requires_journaling,uses_transactions,requires_wiredtiger,requires_snapshot_read - compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=thread --ssl --enable-free-mon=on -j$(grep -c ^processor /proc/cpuinfo) --nostrip + compile_flags: --variables-files=etc/scons/mongodbtoolchain_v3_clang.vars --dbg=on --opt=on --allocator=system --sanitize=thread --ssl --enable-free-mon=on -j$(grep -c ^processor /proc/cpuinfo) # Avoid starting too many mongod's under TSAN build. resmoke_jobs_factor: 0.3 scons_cache_scope: shared diff --git a/etc/perf.yml b/etc/perf.yml index 64d8484c29b..67a9bbd89f3 100644 --- a/etc/perf.yml +++ b/etc/perf.yml @@ -331,7 +331,7 @@ tasks: set -o verbose source "${workdir}/compile_venv/bin/activate" - python ./buildscripts/scons.py ${compile_flags|} ${scons_cache_args|} --install-mode=hygienic install-mongo{,d} DESTDIR=$(pwd)/mongodb + python ./buildscripts/scons.py ${compile_flags|} ${scons_cache_args|} install-mongo{,d} DESTDIR=$(pwd)/mongodb tar czf mongodb${compile-variant|}.tar.gz -C mongodb . - command: s3.put params: diff --git a/etc/system_perf.yml b/etc/system_perf.yml index 24b39d939dd..5a4dfc36221 100755 --- a/etc/system_perf.yml +++ b/etc/system_perf.yml @@ -166,7 +166,7 @@ functions: set -o errexit set -o verbose source "${workdir}/compile_venv/bin/activate" - python ./buildscripts/scons.py ${compile_flags|} ${scons_cache_args|} --install-mode=hygienic install-core MONGO_VERSION=${version} DESTDIR=$(pwd)/mongodb + python ./buildscripts/scons.py ${compile_flags|} ${scons_cache_args|} install-core MONGO_VERSION=${version} DESTDIR=$(pwd)/mongodb mkdir -p mongodb/jstests/hooks if [ -d jstests/hooks ] then diff --git a/jstests/SConscript b/jstests/SConscript index 55a35510e01..9720b22b991 100644 --- a/jstests/SConscript +++ b/jstests/SConscript @@ -12,9 +12,6 @@ Return() env = env.Clone() -if not get_option("install-mode") == "hygienic": - Return() - jstests = env.Glob("**/*.js") # Group by directory to avoid making a million calls to AutoInstall diff --git a/site_scons/site_tools/mongo_libfuzzer.py b/site_scons/site_tools/mongo_libfuzzer.py index a6a47f7f5c4..8b4a176ff5d 100644 --- a/site_scons/site_tools/mongo_libfuzzer.py +++ b/site_scons/site_tools/mongo_libfuzzer.py @@ -64,11 +64,6 @@ def build_cpp_libfuzzer_test(env, target, source, **kwargs): myenv.RegisterTest("$LIBFUZZER_TEST_LIST", result[0]) myenv.Alias("$LIBFUZZER_TEST_ALIAS", result) - # TODO: remove when hygienic is default - hygienic = myenv.GetOption("install-mode") == "hygienic" - if not hygienic: - myenv.Install("#/build/libfuzzer_tests/", result[0]) - return result diff --git a/site_scons/site_tools/mongo_unittest.py b/site_scons/site_tools/mongo_unittest.py index 7324c581017..b34db859f42 100644 --- a/site_scons/site_tools/mongo_unittest.py +++ b/site_scons/site_tools/mongo_unittest.py @@ -24,17 +24,6 @@ from SCons.Script import Action -def register_unit_test(env, test): - """ - Kept around for compatibility with non-hygienic builds. The only callers of - this should be the intel_readtest_wrapper SConscript. All original callers - have been updated to use UNITTEST_HAS_CUSTOM_MAINLINE. - """ - env.RegisterTest("$UNITTEST_LIST", test) - if not env.get("AUTO_INSTALL_ENABLED", False): - env.Alias("$UNITTEST_ALIAS", test) - - def exists(env): return True @@ -72,5 +61,4 @@ def build_cpp_unit_test(env, target, source, **kwargs): def generate(env): env.TestList("$UNITTEST_LIST", source=[]) env.AddMethod(build_cpp_unit_test, "CppUnitTest") - env.AddMethod(register_unit_test, "RegisterUnitTest") env.Alias("$UNITTEST_ALIAS", "$UNITTEST_LIST") diff --git a/src/mongo/SConscript b/src/mongo/SConscript index 714497d76c6..e9fabb7ae04 100644 --- a/src/mongo/SConscript +++ b/src/mongo/SConscript @@ -613,11 +613,6 @@ env.Library( ], ) -hygienic = get_option('install-mode') == 'hygienic' - -if not hygienic: - env.Default(env.Install('#/', mongod)) - if env.TargetOSIs('windows'): generatedServerManifest = env.Substfile( 's/mongos.manifest.in', @@ -646,9 +641,6 @@ mongotrafficreader = env.Program( ], ) -if not hygienic: - env.Install('#/', mongotrafficreader) - # mongos mongos = env.Program( target='mongos', @@ -790,9 +782,6 @@ env.Library( ) -if not hygienic: - env.Install('#/', mongos) - # --- shell --- if not has_option('noshell') and usemozjs: @@ -911,113 +900,30 @@ if not has_option('noshell') and usemozjs: ], ) - if not hygienic: - shellEnv.Install( '#/', mongo_shell ) else: shellEnv = None # ---- INSTALL ------- -# binaries - -distBinaries = [] -distDebugSymbols = [] - -def add_exe( v ): - return "${PROGPREFIX}%s${PROGSUFFIX}" % v - -def failMissingObjCopy(env, target, source): - env.FatalError("Generating debug symbols requires objcopy, please set the OBJCOPY variable.") - -def installBinary( e, name ): - - if hygienic: - return - - debug_sym_name = name - name = add_exe( name ) - - debug_sym_cmd = None - if e.TargetOSIs('linux', 'solaris'): - if 'OBJCOPY' not in e: - debug_sym_cmd = failMissingObjCopy - else: - debug_sym_cmd = '${OBJCOPY} --only-keep-debug ${SOURCE} ${TARGET}' - debug_sym_name += '.debug' - elif e.TargetOSIs('darwin'): - debug_sym_name += '.dSYM' - debug_sym_cmd = 'dsymutil -num-threads=1 -o ${TARGET} ${SOURCE}' - elif e.ToolchainIs('msvc'): - debug_sym_name += '.pdb' - distBinaries.append(debug_sym_name) - distDebugSymbols.append(debug_sym_name) - - if debug_sym_cmd: - debug_sym = e.Command( - debug_sym_name, - name, - debug_sym_cmd - ) - e.NoCache(debug_sym) - e.Install("#/", debug_sym) - e.Alias('debugsymbols', debug_sym) - distDebugSymbols.append(debug_sym) - - if env.TargetOSIs('linux', 'solaris') and (not has_option("nostrip")): - stripped_name = 'stripped/%s' % name - strip_cmd = e.Command( - stripped_name, - [name, debug_sym], - '${OBJCOPY} --strip-debug --add-gnu-debuglink ${SOURCES[1]} ${SOURCES[0]} $TARGET' - ) - e.NoCache(stripped_name) - distBinaries.append(stripped_name) - else: - distBinaries.append(name) - - inst = e.Install( "$DESTDIR/bin", name ) - - if env.TargetOSIs('posix'): - e.AddPostAction( inst, 'chmod 755 $TARGET' ) - -# legacy tools -if not hygienic: - env.Alias("tools", "#/" + add_exe("mongobridge")) - -installBinary( env, "mongod" ) -installBinary( env, "mongos" ) - -if shellEnv is not None: - installBinary( shellEnv, "mongo" ) - if not hygienic: - env.Alias( "core", [ '#/%s' % b for b in [ add_exe( "mongo" ) ] ] ) - -if not hygienic: - env.Alias( "core", [ '#/%s' % b for b in [ add_exe( "mongod" ), add_exe( "mongos" ) ] ] ) - # Stage the top-level mongodb banners distsrc = env.Dir('#distsrc') -if hygienic: - env.AutoInstall( - target='$PREFIX', - source=[ - distsrc.File('README'), - # TODO: we need figure out what to do when we use a different - # THIRD-PARTY-NOTICES for example, with Embedded - distsrc.File('THIRD-PARTY-NOTICES'), - distsrc.File('MPL-2'), - ], - AIB_COMPONENT='common', - AIB_ROLE='base', - ) -else: - env.Append(MODULE_BANNERS = [distsrc.File('README'), - distsrc.File('THIRD-PARTY-NOTICES'), - distsrc.File('MPL-2')]) + + +env.AutoInstall( + target='$PREFIX', + source=[ + distsrc.File('README'), + # TODO: we need figure out what to do when we use a different + # THIRD-PARTY-NOTICES for example, with Embedded + distsrc.File('THIRD-PARTY-NOTICES'), + distsrc.File('MPL-2'), + ], + AIB_COMPONENT='common', + AIB_ROLE='base', +) # If no module has introduced a file named LICENSE-Enterprise.txt then this # is a Community build, so inject the AGPL and the Community license - enterprise_license = [banner for banner in env["MODULE_BANNERS"] if banner.name == "LICENSE-Enterprise.txt"] if not enterprise_license: env.Append(MODULE_BANNERS = [distsrc.File('LICENSE-Community.txt')]) @@ -1029,30 +935,13 @@ if not len(module_banner_filenames) == len(env['MODULE_BANNERS']): # TODO: Be nice and identify conflicts in error. env.FatalError("ERROR: Filename conflicts exist in module banners.") -if hygienic: - env.AutoInstall( - target='$PREFIX', - source=env.get('MODULE_BANNERS', []), - AIB_COMPONENT='common', - AIB_COMPONENTS_EXTRA=['dist', 'dist-test'], - AIB_ROLE='base', - ) - -# Build a set of directories containing module banners, and use that -# to build a --transform option for each directory so that the files -# are tar'ed up to the proper location. -module_banner_dirs = set([Dir('#').rel_path(f.get_dir()) for f in env['MODULE_BANNERS']]) -module_banner_transforms = ["--transform %s=$SERVER_DIST_BASENAME" % d for d in module_banner_dirs] - -# Allow modules to map original file name directories to subdirectories -# within the archive (e.g. { "src/mongo/db/modules/enterprise/docs": "snmp"}) -archive_addition_transforms = [] -for full_dir, archive_dir in list(env["ARCHIVE_ADDITION_DIR_MAP"].items()): - archive_addition_transforms.append("--transform \"%s=$SERVER_DIST_BASENAME/%s\"" % - (full_dir, archive_dir)) - -for target in env["DIST_BINARIES"]: - installBinary(env, "db/modules/" + target) +env.AutoInstall( + target='$PREFIX', + source=env.get('MODULE_BANNERS', []), + AIB_COMPONENT='common', + AIB_COMPONENTS_EXTRA=['dist', 'dist-test'], + AIB_ROLE='base', +) # Set the download url to the right place compass_type = 'compass-community' @@ -1076,64 +965,11 @@ compass_installer = env.Substfile( ], ) -distBinaries.append(compass_installer) - -if not hygienic: - compass_script_installer = env.Install("$DESTDIR/bin", compass_installer) -else: - compass_script_installer = env.AutoInstall( - target='$PREFIX_BINDIR', - source=[ - compass_installer, - ], - AIB_COMPONENT='dist', - AIB_ROLE='runtime', - ) - -if env.TargetOSIs('posix'): - env.AddPostAction( compass_script_installer, 'chmod 755 $TARGET' ) - env.AddPostAction( compass_installer, 'chmod 755 $TARGET' ) - -if not hygienic: - server_archive = env.Command( - target='#/${SERVER_ARCHIVE}', - source=['#buildscripts/make_archive.py'] + env["MODULE_BANNERS"] + env["ARCHIVE_ADDITIONS"] + distBinaries, - action=' '.join( - ['$PYTHON ${SOURCES[0]} -o $TARGET'] + - archive_addition_transforms + - module_banner_transforms + - [ - '--transform $BUILD_DIR/mongo/db/modules/enterprise=$SERVER_DIST_BASENAME/bin', - '--transform $BUILD_DIR/mongo/stripped/db/modules/enterprise=$SERVER_DIST_BASENAME/bin', - '--transform $BUILD_DIR/mongo/stripped=$SERVER_DIST_BASENAME/bin', - '--transform $BUILD_DIR/mongo=$SERVER_DIST_BASENAME/bin', - '--transform src/mongo/installer/compass=$SERVER_DIST_BASENAME/bin', - '${TEMPFILE(SOURCES[1:])}' - ], - ), - BUILD_DIR=env.Dir('$BUILD_DIR').path - ) - - env.Alias("dist", server_archive) - env.NoCache(server_archive) - - debug_symbols_dist = env.Command( - target='#/${SERVER_DIST_BASENAME}-debugsymbols${DIST_ARCHIVE_SUFFIX}', - source=['#buildscripts/make_archive.py'] + distDebugSymbols, - action=' '.join( - [ - '$PYTHON ${SOURCES[0]} -o $TARGET', - '--transform $BUILD_DIR/mongo/db/modules/enterprise=$SERVER_DIST_BASENAME', - '--transform $BUILD_DIR/mongo=$SERVER_DIST_BASENAME', - '${TEMPFILE(SOURCES[1:])}', - ] - ), - BUILD_DIR=env.Dir('$BUILD_DIR').path - ) - - env.Alias('dist-debugsymbols', debug_symbols_dist) - env.NoCache(debug_symbols_dist) - -#final alias -if not hygienic: - env.Alias( "install", "$DESTDIR" ) +compass_script_installer = env.AutoInstall( + target='$PREFIX_BINDIR', + source=[ + compass_installer, + ], + AIB_COMPONENT='dist', + AIB_ROLE='runtime', +) diff --git a/src/mongo/dbtests/SConscript b/src/mongo/dbtests/SConscript index 12870af5369..cd8ebc59871 100644 --- a/src/mongo/dbtests/SConscript +++ b/src/mongo/dbtests/SConscript @@ -190,9 +190,3 @@ if not has_option('noshell') and usemozjs: "tests", ], ) - - hygienic = get_option('install-mode') == 'hygienic' - if not hygienic: - install_dbtest = env.Install('#/', dbtest) - if env.TargetOSIs("windows"): - env.Alias("dbtest", install_dbtest) diff --git a/src/mongo/embedded/mongo_embedded/SConscript b/src/mongo/embedded/mongo_embedded/SConscript index 040e94f0ce0..1295f389557 100644 --- a/src/mongo/embedded/mongo_embedded/SConscript +++ b/src/mongo/embedded/mongo_embedded/SConscript @@ -7,17 +7,15 @@ Import("get_option") env = env.Clone() - -if get_option('install-mode') == 'hygienic': - env.AutoInstall( - '$PREFIX_DOCDIR/mongo_embedded', - source=[ - '#/LICENSE-Community.txt', - '../LICENSE-Embedded.txt', - ], - AIB_COMPONENT='embedded', - AIB_ROLE='base', - ) +env.AutoInstall( + '$PREFIX_DOCDIR/mongo_embedded', + source=[ + '#/LICENSE-Community.txt', + '../LICENSE-Embedded.txt', + ], + AIB_COMPONENT='embedded', + AIB_ROLE='base', +) mongoEmbeddedEnv = env.Clone() mongoEmbeddedEnv.AppendUnique( @@ -74,13 +72,12 @@ mongoEmbeddedTargets = mongoEmbeddedEnv.Library( AIB_COMPONENT='embedded', ) -if get_option('install-mode') == 'hygienic': - env.AutoInstall( - '$PREFIX_INCLUDEDIR/mongo_embedded/v1/mongo_embedded', - source=['mongo_embedded.h'], - AIB_COMPONENT='embedded', - AIB_ROLE='dev', - ) +env.AutoInstall( + '$PREFIX_INCLUDEDIR/mongo_embedded/v1/mongo_embedded', + source=['mongo_embedded.h'], + AIB_COMPONENT='embedded', + AIB_ROLE='dev', +) yamlEnv = env.Clone() yamlEnv.InjectThirdParty(libraries=['yaml']) diff --git a/src/mongo/embedded/mongoc_embedded/SConscript b/src/mongo/embedded/mongoc_embedded/SConscript index 743769b55f6..d1e7f7d6f2c 100644 --- a/src/mongo/embedded/mongoc_embedded/SConscript +++ b/src/mongo/embedded/mongoc_embedded/SConscript @@ -10,16 +10,15 @@ env = env.Clone() if not env['MONGO_HAVE_LIBMONGOC']: Return() -if get_option('install-mode') == 'hygienic': - env.AutoInstall( - '$PREFIX_DOCDIR/mongoc_embedded', - source=[ - '#/LICENSE-Community.txt', - '../LICENSE-Embedded.txt', - ], - AIB_COMPONENT='embedded', - AIB_ROLE='base', - ) +env.AutoInstall( + '$PREFIX_DOCDIR/mongoc_embedded', + source=[ + '#/LICENSE-Community.txt', + '../LICENSE-Embedded.txt', + ], + AIB_COMPONENT='embedded', + AIB_ROLE='base', +) def create_mongoc_env(env): mongocEnv = env.Clone() @@ -74,13 +73,12 @@ mongocEmbeddedTargets = mongocEmbeddedEnv.Library( AIB_COMPONENT='embedded', ) -if get_option('install-mode') == 'hygienic': - env.AutoInstall( - '$PREFIX_INCLUDEDIR/mongoc_embedded/v1/mongoc_embedded', - source=['mongoc_embedded.h'], - AIB_COMPONENT='embedded', - AIB_ROLE='dev' - ) +env.AutoInstall( + '$PREFIX_INCLUDEDIR/mongoc_embedded/v1/mongoc_embedded', + source=['mongoc_embedded.h'], + AIB_COMPONENT='embedded', + AIB_ROLE='dev' +) yamlEnv = env.Clone() yamlEnv.InjectThirdParty(libraries=['yaml']) diff --git a/src/mongo/embedded/stitch_support/SConscript b/src/mongo/embedded/stitch_support/SConscript index 0cfc0fbdc82..04c895bc39b 100644 --- a/src/mongo/embedded/stitch_support/SConscript +++ b/src/mongo/embedded/stitch_support/SConscript @@ -50,13 +50,12 @@ stitchSupportTargets = stitchSupportEnv.Library( AIB_COMPONENT='stitch-support', ) -if get_option('install-mode') == 'hygienic': - env.AutoInstall( - '$PREFIX_INCLUDEDIR/stitch_support/v1/stitch_support', - source=['stitch_support.h'], - AIB_COMPONENT='stitch-support', - AIB_ROLE='dev', - ) +env.AutoInstall( + '$PREFIX_INCLUDEDIR/stitch_support/v1/stitch_support', + source=['stitch_support.h'], + AIB_COMPONENT='stitch-support', + AIB_ROLE='dev', +) if get_option('link-model') != 'dynamic-sdk': stitchSupportTestEnv = env.Clone() diff --git a/src/mongo/tools/SConscript b/src/mongo/tools/SConscript index c503f4c98ca..840000a4217 100644 --- a/src/mongo/tools/SConscript +++ b/src/mongo/tools/SConscript @@ -31,6 +31,3 @@ mongobridge = env.Program( ], AIB_COMPONENT='dist-test', ) - -if get_option("install-mode") != "hygienic": - env.Install("#/", mongobridge) diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript index 8e46d4fd9cd..b541eaa2f2c 100644 --- a/src/third_party/IntelRDFPMathLib20U1/SConscript +++ b/src/third_party/IntelRDFPMathLib20U1/SConscript @@ -418,22 +418,16 @@ readtest = readtestEnv.Program( ], ) -if get_option("install-mode") == "hygienic": - readtest_input = env.AutoInstall( - target="$PREFIX_BINDIR", - source=["TESTS/readtest.in"], - AIB_ROLE="runtime", - AIB_COMPONENT="intel-test", - AIB_COMPONENTS_EXTRA=[ - "unittests", - "tests", - ], - ) -else: - readtest_input = env.Install( - target='.', - source=['TESTS/readtest.in'], - ) +readtest_input = env.AutoInstall( + target="$PREFIX_BINDIR", + source=["TESTS/readtest.in"], + AIB_ROLE="runtime", + AIB_COMPONENT="intel-test", + AIB_COMPONENTS_EXTRA=[ + "unittests", + "tests", + ], +) env.Depends(readtest_input, readtest) @@ -449,17 +443,17 @@ readtest_wrapper = env.Substfile( SUBST_DICT=readtest_dict, ) env.Depends(readtest_wrapper, readtest_input) -if get_option("install-mode") == "hygienic": - readtest_wrapper_install = env.AutoInstall( - target="$PREFIX_BINDIR", - source=readtest_wrapper, - AIB_ROLE="runtime", - AIB_COMPONENT="intel-test", - AIB_COMPONENTS_EXTRA=[ - "unittests", - "tests", - ], - ) + +readtest_wrapper_install = env.AutoInstall( + target="$PREFIX_BINDIR", + source=readtest_wrapper, + AIB_ROLE="runtime", + AIB_COMPONENT="intel-test", + AIB_COMPONENTS_EXTRA=[ + "unittests", + "tests", + ], +) if env.TargetOSIs('windows'): readtest_wrapper_bat = env.Substfile( @@ -469,25 +463,18 @@ if env.TargetOSIs('windows'): ) env.Depends(readtest_wrapper_bat, readtest_wrapper) - if get_option("install-mode") == "hygienic": - readtest_wrapper_bat_install = env.AutoInstall( - target="$PREFIX_BINDIR", - source=readtest_wrapper_bat, - AIB_ROLE="runtime", - AIB_COMPONENT="intel-test", - AIB_COMPONENTS_EXTRA=[ - "unittests", - "tests", - ], - ) - env.RegisterTest("$UNITTEST_LIST", readtest_wrapper_bat_install[0]) - else: - env.RegisterUnitTest(readtest_wrapper_bat[0]) -else: - - if get_option("install-mode") == "hygienic": - env.RegisterTest("$UNITTEST_LIST", readtest_wrapper_install[0]) - else: - env.RegisterUnitTest(readtest_wrapper[0]) + readtest_wrapper_bat_install = env.AutoInstall( + target="$PREFIX_BINDIR", + source=readtest_wrapper_bat, + AIB_ROLE="runtime", + AIB_COMPONENT="intel-test", + AIB_COMPONENTS_EXTRA=[ + "unittests", + "tests", + ], + ) + env.RegisterTest("$UNITTEST_LIST", readtest_wrapper_bat_install[0]) +else: + env.RegisterTest("$UNITTEST_LIST", readtest_wrapper_install[0]) env.AddPostAction(readtest_wrapper[0], Chmod(readtest_wrapper[0], 'oug+x')) diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript index a1efddf2c0c..a01833cac09 100644 --- a/src/third_party/wiredtiger/SConscript +++ b/src/third_party/wiredtiger/SConscript @@ -233,8 +233,3 @@ wtbin = wtbinEnv.Program( LIBDEPS=["wiredtiger"], AIB_COMPONENT="dist-test", ) - -hygienic = get_option('install-mode') == 'hygienic' -if not hygienic: - wtbin_install = wtbinEnv.Install("#/", wtbin) - wtbinEnv.Alias("tools", wtbin_install) |