0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 09:32:32 +01:00
Commit Graph

291 Commits

Author SHA1 Message Date
Shreyas Kalyan
47d9962185 SERVER-55964 Replace "blacklist" in all code and comments 2021-05-14 19:07:16 +00:00
Daniel Moody
9c33afdc8a SERVER-56897 fix regression causing scanner call chain to break 2021-05-13 22:09:22 +00:00
Daniel Moody
ffde170147 SERVER-56625 turning off validate cachedir invalid checksum clean up 2021-05-06 20:46:57 +00:00
Andrew Morrow
91ff6b0c39 SERVER-55833 Add a tool to implement forced includes 2021-05-05 21:13:14 +00:00
Daniel Moody
76eab0dfcc SERVER-56141 added in degree one libdeps analyzer and removed existence of shims from analyzer. 2021-05-05 19:58:49 +00:00
Daniel Moody
43c6b0bda4 SERVER-56624 added json cachedir logs for splunk 2021-05-04 18:47:15 +00:00
Daniel Moody
0b620c24c5 SERVER-56623 make icecream guard from hanging system on large -j 2021-05-04 18:46:05 +00:00
Daniel Moody
44e6740a3f SERVER-54732 fixed validate cachedir debug type issue and turn on globally. 2021-04-22 16:38:41 +00:00
Daniel Moody
827f0f0f00 SERVER-54732 Improve cachedir debug logs for validation cachedir tool. 2021-04-20 18:44:59 +00:00
Daniel Moody
0782c59e71 SERVER-52568 Added GraphPaths, CriticalEdges, and PublicWieghts quieries to libdeps graph analyzer. 2021-04-15 16:34:40 +00:00
Daniel Moody
c84b72d4eb SERVER-54732 Added validate cachedir tool 2021-04-09 21:40:27 +00:00
Daniel Moody
59965cf543 SERVER-55808 added more conftest checking to icecream and ninja tools. 2021-04-09 17:50:03 +00:00
Daniel Moody
7c3a9eff51 SERVER-54928 switch no-init-global flags to be stored on node instead of env. 2021-03-29 19:24:45 +00:00
Andrew Morrow
f30dbae001 Revert "SERVER-48203 setup ninja install actions rule, make evergreen fail correctly on ninja, add precious handling"
This reverts commit 7739da6997.
2021-03-08 03:55:47 +00:00
Andrew Morrow
3dcd089735 SERVER-54285 Ensure cycle detection traverses private edges 2021-03-05 22:49:40 +00:00
Daniel Moody
7739da6997 SERVER-48203 setup ninja install actions rule, make evergreen fail correctly on ninja, add precious handling 2021-03-05 19:52:11 +00:00
Daniel Moody
27aecefac7 SERVER-52576 Added libdeps graph visualizer web service with basic features. 2021-02-26 07:48:36 +00:00
Daniel Moody
b27c452ce1 SERVER-53530 added mac support for libdeps graph generation 2021-02-24 17:04:59 +00:00
Andrew Morrow
13e8d7c56b Revert "SERVER-45236 Eliminate need to reiterate compile flags on the link line"
This reverts commit 6674514dfc.
2021-02-17 16:07:19 +00:00
Andrew Morrow
6674514dfc SERVER-45236 Eliminate need to reiterate compile flags on the link line 2021-02-16 19:12:35 +00:00
Daniel Moody
0d804a2639 SERVER-50268 cleaned up LIBDEP_DEPENDENTS and wiredtiger dependencies. 2021-02-06 06:16:12 +00:00
Daniel Moody
925e90f48f SERVER-35121 added verification of python requirements.txt. 2021-02-05 02:33:38 +00:00
Andrew Morrow
09c92ca7ba SERVER-49298 Add proof targets for out of date test execution 2021-01-15 02:10:49 +00:00
Daniel Moody
6425c57400 SERVER-30815 Added linter to check for unnecessary PUBLIC libdeps, and added schema versioning. 2020-12-16 07:27:36 +00:00
Ryan Egesdahl
b0120ee8b2 SERVER-48291 Ensure runtime is dynamically linked in dynamic builds
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-12-09 16:16:17 +00:00
Ryan Egesdahl
82ef215122 SERVER-48291 Add global dependency pushdown to libdeps
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-11-26 08:56:00 +00:00
Daniel Moody
fa271cc17c SERVER-52567 added basic functions for graph analyzer CLI tool and improved graph generation. 2020-11-25 03:21:49 +00:00
Mark Benvenuto
7759f590c0 SERVER-52613 Support Enterprise module imports in IDL 2020-11-20 20:20:40 +00:00
Daniel Moody
f4902aa0d3 SERVER-48691 added workaround for ninja response files line to long 2020-11-20 05:12:30 +00:00
Daniel Moody
9e9b2423f1 SERVER-52566 added generate-libdeps-graph target for building graph of library dependencies. 2020-11-16 21:51:00 +00:00
Daniel Moody
84a7bc6af3 SERVER-25822 added callback to support preventing given components from linking together 2020-11-12 05:21:52 +00:00
Ryan Egesdahl
96ffd10925 SERVER-51692 Add linting check for unittest names
We discovered in SERVER-50852 that when unit test binary names do not
end with "_test" it can cause problems with the hang check analyzer. To
prevent such occurrences in the future, all CppUnitTest targets must
will be checked to ensure they are named correctly.
2020-11-12 05:00:36 +00:00
Daniel Moody
083ef9b23f SERVER-52585 added global keyword to correctly track idl dependencies 2020-11-03 15:57:28 +00:00
Daniel Moody
4e93e490d4 SERVER-51194 Added build-tools next evergreen tasks 2020-10-26 20:04:53 +00:00
Daniel Moody
298d4d6bbb SERVER-38289 Teach objects builders how to build idl files. 2020-10-22 00:55:19 +00:00
Daniel Moody
f7308b157e SERVER-34484 added out of tree support for idl generation. 2020-10-21 21:52:03 +00:00
Daniel Moody
0c904d2a3d SERVER-46871 Added configure check for lzma when libunwind is in use 2020-10-15 21:57:45 +00:00
Daniel Moody
899679127a SERVER-49798 Added LIBDEPS_TYPEINFO for ubsan builds to add typeinfo dependencies. 2020-10-09 03:22:14 +00:00
Daniel Moody
caf4ff75d5 SERVER-51318 Explicitly set pre/post libdeps flags to be set to nothing. 2020-10-06 05:16:55 +00:00
Ryan Egesdahl
78bb3f3c8a SERVER-50363 Merge --build-tools=next into stable
Merging the following fixes into the stable version of the build tools
and migrate fully from --ninja=next to the --build-tools=next:

  * SERVER-47598
  * SERVER-50010
  * SERVER-47943
  * SERVER-50125
  * SERVER-50376
  * SERVER-49457
  * SERVER-49493
  * SERVER-49036
  * SERVER-48966
2020-10-06 02:57:27 +00:00
Daniel Moody
cbd3c227eb SERVER-50258 Added libdeps rule to enforce that DEPS_DEPENDENTS are actually built and split libdeps into next version 2020-09-25 03:53:51 +00:00
Daniel Moody
9a2d87bdd4 SERVER-50376 Ninja should rebuild on compiler and tool changes 2020-09-21 14:49:36 +00:00
Kaloian Manassiev
b397d8da37 Revert "SERVER-50376 Ninja should rebuild on compiler and tool changes"
This reverts commit 58fd67fc22.
2020-09-09 07:04:16 +00:00
Ryan Egesdahl
58fd67fc22 SERVER-50376 Ninja should rebuild on compiler and tool changes
Allow Ninja to rebuild build.ninja any time a SCons tool or the compiler
is changed between iterative rebuilds. This change allows us to ensure
that we don't have any stale object files lying around that may have
been produced by an incompatible toolchain.
2020-09-09 02:44:01 +00:00
Ryan Egesdahl
6ac9d725e9 Revert "SERVER-50376 Ninja should rebuild on compiler and tool changes"
This reverts commit 4d43e298fe.
2020-09-04 04:57:07 +00:00
Ryan Egesdahl
4d43e298fe SERVER-50376 Ninja should rebuild on compiler and tool changes
Allow Ninja to rebuild build.ninja any time a SCons tool or the compiler
is changed between iterative rebuilds. This change allows us to ensure
that we don't have any stale object files lying around that may have
been produced by an incompatible toolchain.
2020-09-03 22:33:38 +00:00
Ryan Egesdahl
37276b21f4 SERVER-50125 Add sanitizer blacklist files to CCACHE_EXTRAFILES
Some versions of ccache do not know how to handle clang's
-fsanitizer-blacklist flags. Some versions don't handle it at all, while
others only handle one instance, even though it can appear multiple
times on the command line. Because the argument can change the resulting
compiled object, not taking the flags into account properly can cause
ccache to pull an incorrect object file from its cache. The exact
behavior depends on the ccache version and how the arguments are changed
on the command line. We implement a workaround suggested by the ccache
developers until a newer version of ccache with all the required fixes
is in common use.

    * Workaround ref: https://github.com/ccache/ccache/issues/174
2020-09-03 19:55:42 +00:00
Ryan Egesdahl
ecc06d2978 SERVER-47943 Make bad icecream and ccache paths fail hard
If CCACHE or ICECC are specified on the SCons command line but the paths
given don't exist, the associated tool would simply be skipped. This
caused confusion when users were expecting the tool to run and the
compile would proceed without it. Now specifying an incorrect path to
the tool will cause a configure failure.
2020-09-03 19:38:16 +00:00
Andrew Morrow
c4aa65bbd5 SERVER-50689 Support ABI driven linking on macOS with tapi 2020-09-03 17:11:08 +00:00
Andrew Morrow
b478d31b7d SERVER-27507 Add basic visibility support and a test 2020-09-02 03:02:47 +00:00