summaryrefslogtreecommitdiff
path: root/src/mongo/platform/SConscript
AgeCommit message (Collapse)Author
2024-09-14SERVER-90429 Remove diagnostic latches (#27018)Sophia Tan
GitOrigin-RevId: 1244077103b7db17da532acc0cccf830064a96d8
2024-09-12Revert "SERVER-90429 Remove diagnostic latches (#26931)" (#26988)auto-revert-app[bot]
GitOrigin-RevId: bb5782248c45a4b646ac840b5453c5b330fbce85
2024-09-11SERVER-90429 Remove diagnostic latches (#26931)Sophia Tan
GitOrigin-RevId: 700a2528b76de12e272e51cc94d73e3b46557862
2024-05-22SERVER-90615: Enable python formatting checks for src directory (#22299)Steve McClure
GitOrigin-RevId: af7d6593172a8a0ce01027a52d19de1d0215fb5b
2024-05-02SERVER-86052 Add ThinTargets support for bazel integration (#20011)Daniel Moody
GitOrigin-RevId: 809a0c3eff9d4862eeab60f1a874b238aec06f62
2024-04-13SERVER-86656 Create a reader-optimized reader-writer mutex (#19364)Saman Memaripour
GitOrigin-RevId: 92cf6451c2f90266ec14c13d7839c24a87f4e128
2024-03-05SERVER-87378 Fix visibility_test1 dependencies in bazel (#19519)Zack Winter
GitOrigin-RevId: 6e7cace87c2464b8bad409a83236edd8cbd3f0ec
2024-03-02SERVER-87333 Fix visibility_test2 when installed with dynamic mode linking ↵Zack Winter
(#19508) GitOrigin-RevId: 911350387eac6171c3fc59068efc53787b890322
2024-02-23SERVER-86602 AtomicWord -> Atomic step 1: rename class with old header as ↵Mathias Stearn
shim (#18962) GitOrigin-RevId: 2b4dc433e9ec9e9cff175941bc734106145bfd06
2024-02-22SERVER-86859 fix dynamic linking on visibility_test1 (#19139)Zack Winter
GitOrigin-RevId: fc18558e8ba3d936662b14a22d5b1c264032f2a5
2024-02-14SERVER-81797 rename atomic_waitable* to waitable_atomic* to match class ↵Mathias Stearn
names (#18961) GitOrigin-RevId: cabcea5cdc056162859281bf2b5960fb8ffac65a
2024-02-13SERVER-81797 (Basic)WaitableAtomic with wait with deadline and timeout ↵Mathias Stearn
support (#18874) GitOrigin-RevId: 15b2a800eb5e924fd752221dcf5b5cc64e654905
2024-01-24SERVER-85171 split up unittests (#18251)Daniel Moody
GitOrigin-RevId: a92fc2bc46c1fdef8dfe2ef29e3347f39cbc0ad7
2024-01-18SERVER-85361 Add Bazel decorator to all SCons targets that are buildable in ↵Zack Winter
Bazel (#18125) GitOrigin-RevId: 4bdd19b03c888098f4bc6d9101b20967410761f3
2023-11-04SERVER-79137 convert visibility_test1 to build in bazelZack Winter
2023-09-11SERVER-80883 Include standard compiler headers by default in bazel toolchainZack Winter
2022-05-25SERVER-66490 Apply pylinters to build system codeTausif Rahman
2021-08-12SERVER-59139 refactor to use abseil for int128lukebhan
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-09-02SERVER-27507 Add basic visibility support and a testAndrew Morrow
2019-10-21SERVER-42967 SERVER-42895 SERVER-44086 Expand DiagnosticInfo hooks in ↵Ben Caimano
Interruptible and Mutex This commit: - Adds Listener hooks for Interruptible - Expands Listener hooks for Mutex - Updates the DiagnosticInfo and its tests to use the new hooks - Removes stacktracing pieces from DiagnosticInfo and its tests - Removes mongo::ConditionVariable entirely in favor of Interruptible
2019-10-17SERVER-42894 Create SourceLocation type and related macrosBen Caimano
2019-10-02SERVER-43175 platform/endian.h refreshBilly Donahue
This is a very low-level bare metal header, and should ideally #include only std headers. - Remove Decimal128 dependency from endian.h. Decimal128 doesn't need endian conversions, and makes endian.h transitively include several higher-level mongo specifics. Current conversions are underspecified and mathematically incorrect or at least ambiguous. They swap the order within each of the low64 and high64 fields, but don't swap them with each other. This is behavior needed only by one spot in db/pipeline/value.cpp to deserialize NumberDecimal, so we can just inline the behavior there and remove it from endian.h. - Remove MONGO_CONFIG_BYTE_ORDER from config.h. The running compiler holds the ultimate truth on what the target endianness is (available via _BYTE_ORDER_). We should not read it from a config header. The names exported into C++ code for the endian possibilities can be changed to line up with those in C++20's std::endian {big,little,native} enum. This eliminates the Scons<=>C++ bridge protocol of "1234" and "4321" magic numbers. Scons will talk to the compiler, not directly to the code. - Use enum expressions (including if constexpr) rather than #if for branching on endianness. This makes bit-rot of unexecuted paths less likely, and is just cleaner C++. - Remove bswap_slow variants. All supported compilers have builtin bswap operations. Can reduce to a simple MSVC vs GCC branching. All compilers have a builtin, so remove the bswap_slow" implementation. - Don't need all the push_macro / pop_macro stuff, or really any macros at all. Just rely on inline C++ functions. These optimize to the same thing. - Don't need ByteOrderConverter or IntegralTypeMap traits either. Simpler metaprogramming based only on sizeof will work fine. All in all we can remove about 400 lines of old code here and shave some low-level edges off of the dependency graph. - benchmark
2019-07-24SERVER-41358 Created condition_variable polyfillShaileja Jain
2019-07-23SERVER-41362 Attach diagnostic captures to OperationContextsRahul Sundararaman
2019-07-10SERVER-41357 Add mongo::mutex polyfillRahul Sundararaman
2019-06-20SERVER-41809 Collapse unit tests on a per-directory basisAndrew Morrow
2017-01-03SERVER-27497 Scope SCons Environment changes narrowlyAndrew Morrow
2016-10-26SERVER-26709 Merge mongo/platform/platform and mongo/util/foundation into ↵Andy Schwerin
mongo/base library.
2016-06-08SERVER-24276 Add decimal test suites from driver specsVincent Do
2016-05-09SERVER-21404 Introduce some useful 64-bit arithmetic with overflow detection ↵Andy Schwerin
functions.
2016-04-22SERVER-1393: Include decimal support under control of server parameterGeert Bosch
2015-10-27SERVER-19614 Implement stack bounds detectionAndrew Morrow
2015-09-22SERVER-20096: ExportedServerParameter<T> is not thread-safe for parameters ↵Mark Benvenuto
changeable at runtime.
2015-08-10SERVER-9666 Decimal wrapper must be part of libbase to avoid dependency cyclesAndrew Morrow
2015-08-07SERVER-19623 Add C++ wrapper for Decimal128 typeRaymond Jacobson
2015-07-21SERVER-9666 Collapse the low level cyclic libs into a new base libAndrew Morrow
2015-06-12SERVER-17199 Fix compiles on platforms without execinfo.hJonathan Reams
2015-03-30SERVER-17519: Add support for multi-platform shared library loadingMark Benvenuto
2014-08-12SERVER-14852 AAE safe read/write primitivesJason Carey
Alignment, aliasing and endian safe read write primitives in the form of DataView and DataCursor primitives. These primitives provide safe reads and writes with explicit endian variants that funnel through std::memcpy to provide defined behavior. Support for a safe packed struct idiom is also provided in the encoded_value_storage class.
2013-06-20SERVER-7080 Link to backtrace, backtrace_symbols and backtrace_symbols_fd at ↵Tad Marshall
runtime Do not make direct calls to backtrace, backtrace_symbols or backtrace_symbols_fd, which are present in Solaris 11 but not in Solaris 10. Instead, see if they are available in a loaded library (which will be libc.so.1) at runtime and either call them or call an emulation.
2013-06-19SERVER-7404 Link to posix_fadvise at runtime for SolarisTad Marshall
For the Solaris/SmartOS build, do not make direct calls to posix_fadvise, which is present in Solaris 11 but not in Solaris 10. Instead, see if it is available in a loaded library (which will be libc.so.1) at runtime and either call it or call an emulation. The emulation is a no-op.
2013-06-17SERVER-9786 Link to strcasestr at runtime for SolarisTad Marshall
For the Solaris/SmartOS build, do not make direct calls to strcasestr, which is present in Solaris 11 but not in Solaris 10. Instead, see if it is available in a loaded library (which will be libc.so.1) at runtime and either call it or call an emulation. Use the emulated version on Windows, which is also missing this function.
2013-06-03SERVER-9809 Introduce mongo-wide ProcessId type.Andy Schwerin
2012-11-12a simple unit test for seeded randomEliot Horowitz
2012-10-10simple Random class to consolidate all random number needsEliot Horowitz
2012-06-24added MONGO_PLATFORM_(32|64) to make it easier to change behavior at compile ↵Eliot Horowitz
time
2012-06-06SERVER-5648: Native support for 64-bit atomic integers.Andy Schwerin
Implementations for Windows compatible with Server 2003 and later, using the Interlocked* functions. Implementations for gcc-compatible compilers targeting x86_64 (AMD64/IA-32e) using inline assembly. Implementations for gcc-compatible compilers supporting __sync_val_compare_and_swap targeting x86 (IA-32), using a mix of inline assembly and __sync_val_compare_and_swap. No implementation for older GCC compilers targeting x86 (IA-32), including the default compiler on RHEL5. Unit test included, for correct single-threaded semantics.