summaryrefslogtreecommitdiff
path: root/src/SConscript
AgeCommit message (Collapse)Author
2024-08-17SERVER-91801 error on missing SConscripts (#26268)Daniel Moody
GitOrigin-RevId: 70bba9fa5163e226a62b87d19c8a7a8d462eb956
2024-08-13SERVER-93253 Remove shim_allocator and shim_unwind (#25980)Zack Winter
GitOrigin-RevId: 13b763dd888deee1af5cdc82e30bca6d58839743
2024-05-22SERVER-90615: Enable python formatting checks for src directory (#22299)Steve McClure
GitOrigin-RevId: af7d6593172a8a0ce01027a52d19de1d0215fb5b
2024-05-17SERVER-84609 Define a version for Aladdin MD5 (#19406)adriangzz
GitOrigin-RevId: 6f66f4d07b5c7e263d18d028410f445e943c2d88
2024-04-05SERVER-88973 Fix Bazel unwind=auto on Linux (#20760)Zack Winter
GitOrigin-RevId: 50e66b566a7ca1231684e89d144b7796c721f6fc
2024-03-23SERVER-87976 Use roaring bitmaps for RecordId deduplication in IndexScan ↵Alexander Ignatyev
stage (#20047) SERVER-87976 Use roaring bitmaps for RecordId deduplication in IndexScan stage. Implement a hybrid data structure that utilizes a flat hash table for storing a smaller number of integers (up to approximately 1 million) and uses Roaring Bitmaps for larger numbers. Use it for RecordId deduplication in IndexScan stage. GitOrigin-RevId: 64c794bdbbcb6b3f904264e6b282e5d344e3d9b6
2023-03-29SERVER-68674 Vendor immer to third_partyHenrik Edin
2023-02-18SERVER-73892 Disallow includes to start with third_partyDaniel Moody
2022-06-27SERVER-65277 Remove dependency on deprecated PCRE libraryJennifer Peshansky
2022-05-25SERVER-66490 Apply pylinters to build system codeTausif Rahman
2022-04-18SERVER-55204 Error on fallthrough unless the attribute is usedAndrew Morrow
2021-08-05SERVER-56580 Promote build-tools=next to stableAndrew Morrow
2021-07-26SERVER-48291 Remove support for shim_cxx and shim_crt librariesAndrew Morrow
2020-12-09SERVER-48291 Ensure runtime is dynamically linked in dynamic buildsRyan Egesdahl
Prior to this point, a dynamic build might have resulted in some runtime libraries being statically linked into shared objects and executables in cases where "shared" runtime libraries were actually linker scripts that linked static versions. This was the case with the MongoDB toolchain and some distro toolchains, including those installed as updated compiler versions in RHEL. The effect of having runtime libraries statically linked was that symbols from those libraries would end up scattered over the compiled objects, increasing object sizes and slowing down server startup. Now, whenever a dynamic build is selected, the user can choose whether to create "shim" runtime libraries that wrap the static ones. The default behavior remains as it was before, and dynamic runtime must be enabled in order to use it.
2020-11-26Revert "SERVER-48291 Ensure runtime is dynamically linked in dynamic builds"Kaloian Manassiev
This reverts commit 2a0e76082be0f2aca82830bcaf91f6d737b842ac.
2020-11-26SERVER-48291 Ensure runtime is dynamically linked in dynamic buildsRyan Egesdahl
Prior to this point, a dynamic build might have resulted in some runtime libraries being statically linked into shared objects and executables in cases where "shared" runtime libraries were actually linker scripts that linked static versions. This was the case with the MongoDB toolchain and some distro toolchains, including those installed as updated compiler versions in RHEL. The effect of having runtime libraries statically linked was that symbols from those libraries would end up scattered over the compiled objects, increasing object sizes and slowing down server startup. Now, whenever a dynamic build is selected, the user can choose whether to create "shim" runtime libraries that wrap the static ones. The default behavior on Linux is that dynamic builds will detect whether runtime libraries are linker scripts and create shim libraries if any are found. On Windows, the default is to always use a dynamic runtime library with dynamic builds. For other platforms, the prior behavior remains unchanged.
2020-11-26SERVER-48291 Add global dependency pushdown to libdepsRyan Egesdahl
We sometimes have situations where a dependency applies at a large scope, such as in the case of tcmalloc, which can apply everywhere. What we have done previously is to hack these dependencies into the LIBDEPS environment variable by adding a builder to all nodes that can produce a compiler result. This is, as stated previously, hackish and hard to control, and it results in adding a Public dependency to all those nodes. What we now do instead is to define LIBDEPS_GLOBAL on the *build environment* (not the Builder node) listing the targets we would like to push down to all other nodes below that point. This has the effect of adding those targets as Private dependencies on all Builder nodes from that point downward, which means some common Public dependencies can be converted to a Private dependency that is stated only once.
2020-06-26SERVER-40147 Upgrade third-party variant from 1.3.0 to 1.4.0Ryan Egesdahl
We use a third-party implementation of std::variant on platforms that do not include it. This change simply upgrades the third-party source to the most recent release and then fixes the way we actually depend on it.
2019-05-31SERVER-26906 Add constexpr function to convert DurationsA. Jesse Jiryu Davis
2019-04-08SERVER-40389 small tweaks to third_party/fmt & related.Billy Donahue
Add an option to scons: --use-system-fmt import.sh: use the upstream libfmt github repo. StringData fmt interop noexcept for to_string_view(StringData) hook noexcept for StringData's rawData() and size() add fmt to THIRD-PARTY-NOTICES + markdown tweaks import the fmt LICENSE.rst update fmt lib revision
2019-02-01SERVER-38176 Compile with /permissive- on MSVC to make the compiler strictly ↵Henrik Edin
standard conformant.
2018-11-15SERVER-38107 Add abseil-cpp to third_partyHenrik Edin
Just compiling in the hash tables for now.
2017-01-03SERVER-27497 Scope SCons Environment changes narrowlyAndrew Morrow
2014-07-12SERVER-14343 leaner include pathsAndrew Morrow
2012-10-23SERVER-7118 Change "mongo modules" to use SConscript files for modules.Andy Schwerin
Also allows you to have modules in mongos and the shell, as well as mongod. Requires changes to the modules, to have SConscript files, and define libraries. Allows modules to have unit tests, interesting linking rules, dependencies into mongo, etc. Still may need to do some work on includes. The mongo-enterprise module has very simple include requirements, today.
2012-01-17SCons updates to support variant directories.Andy Schwerin
This patch is a reorganization of our build files, which brings them slightly closer in line with standard SCons organization. In particular, the SConstruct file sets up the various "build environment" objects, by examining the local system and command line parameters. Then, it delegates to some SConscript files, which describe build rules, like how to compile "mongod" from source. Typically, you would create several SConscript files for a project this large, after breaking the project into logical sub projects, such as "platform abstraction", "data manager", "query optimizer", etc. That will be future work. For now, we only separate out the special rules for executing smoke tests into SConscript.smoke. Pretty much all other build rules are in src/mongo/SConscript. "tools" are placed in site_scons/site_tools. This patch also includes better support for building and tracking dependencies among static libraries ("libdeps" and "MergeLibrary"), and some incumbent, minor restructuring. This patch introduces a "warning" message from SCons about framework.o having two rules that generate it. It is harmless, for now, and will be removed in future work. Future work also includes eliminating use of the SCons "Glob" utility, and restructuring the source code into sensible components.