We don't currently use the static libraries, they are just nodes in our
dependency graph. Since they are unused, building them wastes time and disk
IO.
We still need to generate the files to appease scons. They are filled with a
UUID on the assumption that if scons thinks that a library needs to be rebuilt
then anything that depends on the library should also be rebuilt.
In addition, move the .scons directory to a subdirectory of the build
directory. This makes all build artifacts not installed to '#' live under the
build directory.
The use of --use-system-yaml was incorrectly searching for yaml-cpp
under the 'yaml' name.
Search for yaml-cpp instead.
Fixes: SERVER-14388
Signed-off-by: Benety Goh <benety@mongodb.com>
1. Move swap from std to mongo namespace. Fixed C++ build on 10.9 with
XCode 5.1
2. Add check to see if no-null-conversion needs to be enabled for C++
build on 10.8 with Xcode 4.2
On RHEL6 builders, the -fPIE compiler flag causes the mongo shell to make
a pure virtual function call inside the V8 engine at startup. Since
the swtitch to -fPIE was unnecessary for SERVER-13944, switching back to
-fPIC pending investigation.
Implementation of the "somap" object, which can be used to identify the correct
binary from which to extract debug symbols and supports ASLR, is only implemented
on Linux. Other POSIX systems still need work to implement that object.
Switch to using gcc atomic builtins for atomic operations if using a new
enough gcc and clang and support is available. Otherwise, fall back to
the old behaviour of existing non-portable inline assembly to continue
to support builds on older versions of gcc.
Signed-off-by: Benety Goh <benety@mongodb.com>
This change was prompted by attempts to build 2.6.0 in SLES 10 with
its system gcc version 4.1.2. It builds fine other than a sole
warning - src/third_party/boost/boost/thread/detail/thread.hpp:316:
warning: type attributes are honored only at type definition. It
should also help in cases where compilers are too new.
Having the variant directory contain the JS engine name can actually increase
the time required to switch JS engines, because the only code that must compile
when you switch is the new JS engine and a small handful of support files.
This patch should enable building on OpenBSD 5.4.
- added a processinfo implementation based heavily off of the same
code for freebsd.
- fixed a few scons problems in mongo and v8
- added __openbsd__ directives to s2 build
- Don't disturb bswap() functions on freebsd.
- Fixed indentation sloppiness. No code changes.
Signed-off-by: Mark Benvenuto <mark.benvenuto@mongodb.com>
The following change was backported:
https://code.google.com/p/gperftools/source/detail?r=18fbc316eebea9db2d7ec41e161c0a3fbb09fa42
Another change we wanted was:
https://code.google.com/p/gperftools/source/detail?r=6287bbbbad8730712cfd1ee28ecc0648cbaa9f94#
However, since that patch must hit every PR/SC instance and the code has evolved from that point
we instead just ran the following two scripts over the gperftools source tree:
find . -type f | xargs egrep -l '"PR\w+"' | xargs perl -pi -e 's|"PR(\w+)"|" PR\1 "|g'
find . -type f | xargs egrep -l '"SC\w+"' | xargs perl -pi -e 's|"SC(\w+)"|" SC\1 "|g'
and then manually fixing up the one reference to GPRIuPTHREAD, which achieved the same result.
Finally, remove the logic preventing mixture of C++11 and gperftools from the build system.
This also opens the exciting possibility of displaying the base address
of the file containing the address, which would let us dump stacks when
ASLR is in use. However, this implementation preserves the format used
in the Linux backtrace_symbols() implementation.
The MongoDB C++ client driver now resides in a separate repo and is maintained
independently of the server. The targets in this repo that used to build or test
the driver will now print an error message explaining the change and referring
users to the relevant documentation.