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

276 Commits

Author SHA1 Message Date
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
Andrew Morrow
9339181a83 SERVER-50674 Don't strip local symbols on darwin 2020-09-02 03:02:47 +00:00
Daniel Moody
a81e107047 SERVER-49168 made SYSLIBDEPS_PRIVATE type and switched lzma to use it 2020-08-27 21:35:32 +00:00
Daniel Moody
ad84ed6435 SERVER-49703 Added libdep linter alphabetic rule and update all libdeps list to be alphabetical 2020-08-27 06:21:15 +00:00
Daniel Moody
31361990d9 SERVER-49119 Added way for libdeps to generically handle prefix/postfix flags, moved --whole-archive out to SConstruct and add --as-needed for dynamic 2020-08-27 01:08:39 +00:00
Daniel Moody
fff9061086 SERVER-50010 Added mechanism for custom deps for REGENERATE rule 2020-08-26 16:16:36 +00:00
Daniel Moody
8f42fecbea SERVER-49760 Added libdep lint rule to enforce no public libdeps. 2020-08-25 22:29:28 +00:00
Daniel Moody
cc68e42e8d SERVER-49761 Added libdeps rule for leaf node no dependencies 2020-08-21 20:17:47 +00:00
Andrew Morrow
0662433ac0 SERVER-47598 Refactor ICECC_VERSION handling 2020-08-18 17:21:36 +00:00
Andrew Morrow
c40e96ea0b SERVER-49466 Introduce a flag to opt in to newer mongodb SCons tools as a group 2020-08-17 22:09:57 +00:00
Daniel Moody
ecd1e0b022 SERVER-48638 added missing quote to error message 2020-08-15 03:08:48 +00:00
Daniel Moody
a78139a155 SERVER-49457 Ninja tool static links should delete existing archive before linking" 2020-08-14 05:07:11 +00:00
Daniel Moody
3202a05352 SERVER-49493 Add use of depfile to ninja tool 2020-07-29 20:20:31 +00:00
Daniel Moody
47d5332624 SERVER-49799 Switched libdeps environment vars to single location in an internal CONST class. 2020-07-28 19:55:26 +00:00
Ryan Egesdahl
cdab099b95 SERVER-48041 Package santizer blacklist files in icecream environments
Before this point, remote builds did not work because Icecream did not
copy sanitizer blacklist files to the remote hosts. We had a check in
place that silently turned Icecream builds with sanitizers into local
builds. Now we build the sanitizer blacklist files into the environment
tarball that Icecream uses for remote builds.
2020-07-24 17:35:55 +00:00
Daniel Moody
d986854f5e SERVER-48638 Added LibdepsLinter to enforce LIBDEPS rules 2020-07-23 21:52:22 +00:00