summaryrefslogtreecommitdiff
path: root/src/mongo/platform/SConscript
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-66490 Apply pylinters to build system codeTausif Rahman2022-05-251-5/+4
|
* SERVER-59139 refactor to use abseil for int128lukebhan2021-08-121-0/+1
|
* SERVER-48291 Remove support for shim_cxx and shim_crt librariesAndrew Morrow2021-07-261-10/+0
|
* SERVER-48291 Ensure runtime is dynamically linked in dynamic buildsRyan Egesdahl2020-12-091-5/+25
| | | | | | | | | | | | | | | | | | 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.
* SERVER-27507 Add basic visibility support and a testAndrew Morrow2020-09-021-1/+79
|
* SERVER-42967 SERVER-42895 SERVER-44086 Expand DiagnosticInfo hooks in ↵Ben Caimano2019-10-211-1/+0
| | | | | | | | | | | 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
* SERVER-42894 Create SourceLocation type and related macrosBen Caimano2019-10-171-0/+1
|
* SERVER-43175 platform/endian.h refreshBilly Donahue2019-10-021-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* SERVER-41358 Created condition_variable polyfillShaileja Jain2019-07-241-0/+1
|
* SERVER-41362 Attach diagnostic captures to OperationContextsRahul Sundararaman2019-07-231-3/+0
|
* SERVER-41357 Add mongo::mutex polyfillRahul Sundararaman2019-07-101-3/+5
|
* SERVER-41809 Collapse unit tests on a per-directory basisAndrew Morrow2019-06-201-10/+15
|
* SERVER-27497 Scope SCons Environment changes narrowlyAndrew Morrow2017-01-031-0/+2
|
* SERVER-26709 Merge mongo/platform/platform and mongo/util/foundation into ↵Andy Schwerin2016-10-261-23/+5
| | | | mongo/base library.
* SERVER-24276 Add decimal test suites from driver specsVincent Do2016-06-081-0/+1
|
* SERVER-21404 Introduce some useful 64-bit arithmetic with overflow detection ↵Andy Schwerin2016-05-091-0/+1
| | | | functions.
* SERVER-1393: Include decimal support under control of server parameterGeert Bosch2016-04-221-3/+1
|
* SERVER-19614 Implement stack bounds detectionAndrew Morrow2015-10-271-0/+3
|
* SERVER-20096: ExportedServerParameter<T> is not thread-safe for parameters ↵Mark Benvenuto2015-09-221-0/+1
| | | | changeable at runtime.
* SERVER-9666 Decimal wrapper must be part of libbase to avoid dependency cyclesAndrew Morrow2015-08-101-7/+1
|
* SERVER-19623 Add C++ wrapper for Decimal128 typeRaymond Jacobson2015-08-071-10/+23
|
* SERVER-9666 Collapse the low level cyclic libs into a new base libAndrew Morrow2015-07-211-3/+6
|
* SERVER-17199 Fix compiles on platforms without execinfo.hJonathan Reams2015-06-121-1/+0
|
* SERVER-17519: Add support for multi-platform shared library loadingMark Benvenuto2015-03-301-0/+2
|
* SERVER-14852 AAE safe read/write primitivesJason Carey2014-08-121-0/+1
| | | | | | | | | | 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.
* SERVER-7080 Link to backtrace, backtrace_symbols and backtrace_symbols_fd at ↵Tad Marshall2013-06-201-0/+1
| | | | | | | | | 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.
* SERVER-7404 Link to posix_fadvise at runtime for SolarisTad Marshall2013-06-191-0/+1
| | | | | | | 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.
* SERVER-9786 Link to strcasestr at runtime for SolarisTad Marshall2013-06-171-0/+1
| | | | | | | | 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.
* SERVER-9809 Introduce mongo-wide ProcessId type.Andy Schwerin2013-06-031-2/+6
|
* a simple unit test for seeded randomEliot Horowitz2012-11-121-0/+1
|
* simple Random class to consolidate all random number needsEliot Horowitz2012-10-101-0/+2
|
* added MONGO_PLATFORM_(32|64) to make it easier to change behavior at compile ↵Eliot Horowitz2012-06-241-0/+1
| | | | time
* SERVER-5648: Native support for 64-bit atomic integers.Andy Schwerin2012-06-061-0/+5
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.