Commit Graph

592 Commits

Author SHA1 Message Date
mpilman b81a4ef6a2 clang+libc++ support on linux + dtrace probes 2019-07-30 18:36:10 -07:00
Alvin Moore 397ad77532 Added support for using different linkers within make projects
Better cmake support for linkers
2019-07-29 16:41:42 -07:00
Alvin Moore e52d34e93a Added support for specifying the build linker by environmental variable
Added support for specifying the BFD linker
2019-07-26 08:49:56 -07:00
A.J. Beamon a92b6cd3d1 Merge branch 'master' into add-cache-memory-parameter
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
2019-07-25 13:41:57 -07:00
Andrew Noyes 3d2f35eec6 Fix a cmake typo
This allows a few more files to get type checked during an OPEN_FOR_IDE
build
2019-07-23 15:12:47 -07:00
A.J. Beamon 94be9560ea Add cache_memory parameter to fdbserver to control the size of the (4K) page cache. Change the default slighty from 2000 MiB to 2GiB. 2019-07-23 15:05:21 -07:00
mpilman 23d2c58446 Put fdbmonitor into `sbin` dir in tgz-package
Fixes #1753
2019-07-23 09:40:33 -07:00
mpilman 1ac2d01b03 Merge remote-tracking branch 'upstream/master' into flatbuffers-fixes2 2019-07-18 09:50:08 -07:00
Alvin Moore b9e938972c
Merge pull request #1719 from mpilman/features/static-libc++
statically link libstdc++ on Linux and remove std::variant
2019-07-16 21:00:02 -07:00
Evan Tschannen 2520b69803
Merge pull request #1832 from dyoungworth/bugFix
Fix ctests so each restart test has a seed unique to the first test
2019-07-16 16:43:17 -07:00
mpilman b18666d942 statically link libstdc++ on Linux and remove std::variant
this will hopefully fix #1610
2019-07-16 14:53:16 -07:00
Markus Pilman 520f552082
Update cmake/ConfigureCompiler.cmake
Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-07-15 15:16:43 -07:00
dyoungworth baf8e020d1 use one index to track tests in ctest 2019-07-15 14:52:24 -07:00
Andrew Noyes 274cb40eb8 Run tests under valgrind when USE_VALGRIND 2019-07-11 23:03:31 -07:00
dyoungworth 62d7ee9424 Fix ctests so each restart test has a seed unique to the first test
and any other test
2019-07-11 09:56:51 -07:00
mpilman 23963328cc Compile relative paths into the debug info
This is a suggestion to resolve #1780

This change introduces a new cmake flag `RELATIVE_DEBUG_PATHS`.
If this flag is set or FDB is compiled with `-DFDB_RELEASE=ON`,
the resulting binary will have debug information using relative
file paths to source files. This simulates the behavior of the
old build system but might break local debugging (making the
debugger aware of build and source directory will be required).
2019-07-09 12:11:51 -07:00
Jingyu Zhou e2d7929b73 Remove redundant actor compiler flags. 2019-06-30 08:25:53 -07:00
Andrew Noyes 3a246c1d25 Remove -fdiagnostics-color=always
This way you can run with -DCMAKE_COLOR_MAKEFILE=0 in CI and not get
garbled escape characters in your log
2019-06-28 17:46:47 -07:00
Alex Miller 30b27349a7 Fix addFdbTest 2019-06-25 21:57:09 -07:00
Alvin Moore 8ff5150470
Merge pull request #1636 from atn34/export-libfdb_c
Export libfdb c
2019-06-24 13:08:41 -07:00
mpilman ab019fbe41 More minor fixes, removed snapshots 2019-06-20 14:28:31 -07:00
mpilman 844dd60202 FDB compiling with intel compiler 2019-06-20 09:29:01 -07:00
mpilman 6f52059750 Fix backtraces
pass -fno-omit-frame-pointer as we otherwise see broken back traces.
This should fix #1631 as well.
2019-06-18 15:33:12 -07:00
Evan Tschannen 20e3edeb0a Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbserver/storageserver.actor.cpp
#	versions.target
2019-06-14 12:42:59 -07:00
mpilman 4c62458172 Make valgrind work on Fedora 30 2019-06-11 10:27:08 -07:00
mpilman 8590cd4286 Add libc++ support for non-MacOS 2019-06-10 17:34:03 -07:00
Andrew Noyes c9dc2f98f0 Make pkg-config look more like example in man page 2019-06-09 15:22:06 -07:00
Andrew Noyes f5e7b8b165 Support pkg-config 2019-06-09 15:21:36 -07:00
Andrew Noyes 9af6326e1b Make find_package work 2019-06-09 15:21:36 -07:00
Andrew Noyes 882523330c include(/path/to/cmake/file) now works for fdb_c 2019-06-09 15:21:36 -07:00
Andrew Noyes cabe41626c Prepare for exporting fdb_c 2019-06-09 15:21:36 -07:00
Andrew Noyes 2b07a0559e Install headers in foundationdb dir 2019-06-09 15:21:36 -07:00
Andrew Noyes 8e0cbd299b Use 'map' for finding install paths 2019-06-09 15:21:36 -07:00
Alvin Moore 4e99bebb18 Added support for enabling ccache by environmental variable 2019-06-06 08:54:31 -07:00
Alex Miller 77697666e6 Make USE_CCACHE=ON print an error if ccache is not found 2019-06-05 11:46:41 -07:00
Alex Miller 78137c9ae8 Add a cmake flag to enable ccache use by default. 2019-06-05 11:46:41 -07:00
sramamoorthy 8370871e4c stale RESTORE option related code removed 2019-05-28 22:07:46 -07:00
sramamoorthy 281c785f94 '--restoring' cmd line arg removed for fdbserver
'--restoring' command line option was introduced to indicate
simulated fdbserver to restore from snapshot and restart the cluster.
As part of this change that option is removed and restore
information is stored in the restartInfo.ini.
2019-05-28 22:07:46 -07:00
sramamoorthy 4bc4c615da exec op to all tlog, restore change in test &other
- exec operation to go to all the TLogs
- minor bug fix in tlog
- restore implementation for the simulator
- restore snap UID to be stored in restartInfo.ini
- test cases added
- indentation and trace file fixes
2019-05-28 22:07:46 -07:00
sramamoorthy 69edefe68b Snapshot based backup and resotre implementation 2019-05-28 22:07:46 -07:00
Austin Seipp ee1e3f620a cmake: add support for choosing 'ld' via -DUSE_LD
This introduces a new USE_LD cached variable which can be set to one of
three values: LD, GOLD, or LLD. In the latter two cases, we propagate
the -fuse-ld={gold,lld} option to the compiler. The default case
defaults to whatever the ordinary system linker is, i.e. it does
nothing.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-15 08:33:36 -10:00
mpilman 69fa3d3903 fixed compilation issues after rebase 2019-05-13 14:15:23 -07:00
mpilman 8bbd28315e Added Object serializer (does not yet compile) 2019-05-13 14:15:22 -07:00
mpilman 57db135858 Use productbuild instead of PackageMaker on MacOS
fixes #1547
fixes #1549
2019-05-11 14:42:48 -07:00
Evan Tschannen 22499666d0 Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbserver/LogRouter.actor.cpp
#	flow/Trace.cpp
#	versions.target
2019-05-08 18:19:35 -07:00
Austin Seipp 084c049e64 cmake: require mcs, not dmcs, and drop dmcs support
dmcs was noted as deprecated in its startup message script many years
ago (2016), and dmcs itself was *actually* deprecated even years before
that -- 'dmcs' itself only executes 'mcs' with the .NET 4.0 SDK enabled
anyway.

Since CMake will be the new primary build system, let's go ahead and
drop support for dmcs entirely in this setup.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-07 16:57:56 -10:00
Austin Seipp 8f98104f92 cmake: echo versions.h target command if VERBOSE=1
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-07 16:54:05 -10:00
Alvin Moore 085a9242e4 Changed specification of the path to the License.txt file since previous value resulted in search at top level (/) directory. 2019-05-03 00:12:07 -07:00
Alvin Moore f308549be7 Commented out Readme file for mac os until working within packaging 2019-05-02 23:45:16 -07:00
Alvin Moore 345e8496ab Fixed the cmake package vendor and email information in order to prevent cpack errors 2019-05-02 22:14:18 -07:00
Alvin Moore 28d96fe612 Merge pull request #1470 from mpilman/fixes/windows-parallel-build
Don't pass options file to coverage tool
2019-04-25 12:02:10 -07:00
Alvin Moore 8badc2e505 Merge pull request #1338 from mpilman/features/stripped-binaries
Strip debug symbols with `make packages`
2019-04-25 12:02:10 -07:00
mpilman 33b6e4ec3e Add /MP option to compiler to allow for more parallelism 2019-04-17 16:13:34 -07:00
mpilman 8ef453eb2e Don't pass options file to coverage tool
This hopefully fixes a weird msbuild issue where files are generated
more than once. This issue is described here:
https://gitlab.kitware.com/cmake/cmake/issues/16767

This workaround makes coverage_tool not to use the generated options
files, which hopefully will result in msbuild not trying to generate
these files more than once.
2019-04-17 12:10:51 -07:00
Andrew Noyes 6207d724f8 Fix all -Wunused-variable warnings 2019-04-15 18:13:00 -07:00
Evan Tschannen cd5c9d91fa
Merge pull request #1443 from etschannen/master
Merge 6.1 into master
2019-04-10 17:43:07 -07:00
Evan Tschannen 21c0ba555c Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	versions.target
2019-04-08 18:38:42 -07:00
Alex Miller ee7822f032
Merge pull request #1412 from atn34/fix-sandbox-port
Fix port to match sandbox foundationdb.conf
2019-04-03 19:29:51 -07:00
Andrew Noyes 638978d9bb Fix comment 2019-04-03 13:52:00 -07:00
Jingyu Zhou fc59587b3c
Merge pull request #1393 from jzhou77/pprof
Gperftools Profiling fix.
2019-04-03 10:35:31 -07:00
Alvin Moore 19df3e7521 Fixed dotnet reference errors 2019-04-03 05:33:46 -07:00
Jingyu Zhou bb775eaf45 Only add compiler flags of gperftools for gcc 2019-04-02 19:58:21 -07:00
Jingyu Zhou 56a1128a9b Enhance cmake's gperftools support
Add compiler flags and link flags for gperftools.
2019-04-02 17:34:29 -07:00
mpilman 48f3e65bdf Strip debug symbols with `make packages`
When compiling on Linux/MacOS `make packages` will now create
a `lib` and a `bin` directory in the packages directory. In there
it will put stripped versions of all executables and shared
libraries (i.e. the binaries without debug symbols).

If this is run on Linux, it will additionally copy the debug symbols
of all executables into .debug files.
2019-03-20 20:27:10 -07:00
Alex Miller 5d59cfaff3 Use different default port for dev-sandbox
Co-Authored-By: mpilman <markus@pilman.ch>
2019-03-20 12:18:31 -07:00
mpilman a0fe00fa8d Add cmake targets to execute local dev instance 2019-03-20 12:18:31 -07:00
Alex Miller 1f1fb8acee Update cmake/InstallLayout.cmake
Co-Authored-By: atn34 <anoyes34@gmail.com>
2019-03-19 16:28:42 -07:00
Andrew Noyes b20acd6e5c Include empty etc dir in cmake clients deb
This seems to be necessary since without it the postinstall script
complains that directory is missing.
2019-03-19 16:28:42 -07:00
Andrew Noyes 56c14bee0b Remove python dep from cmake-generated deb 2019-03-19 16:28:42 -07:00
Andrew Noyes 143c62b959 Recognize install destination "lib" 2019-03-19 16:28:42 -07:00
Andrew Noyes 4866a8922e Fail build if install destination not recognized 2019-03-19 16:28:42 -07:00
Andrew Noyes fdde63bbdb Remove EXPORT since it's broken and unnecessary 2019-03-19 16:28:42 -07:00
Markus Pilman 913588d6f1 Update cmake/ConfigureCompiler.cmake
Co-Authored-By: satherton <stevea@apple.com>
2019-03-15 21:03:03 -07:00
Stephen Atherton 7f8475cf27 Removed flow/boost.cpp and the copied boost files it was using, added boost macros to makefile and cmake stuff to hopefully enable building without them. 2019-03-15 21:03:03 -07:00
mpilman bc4820865e Fix some Windows issues
1. We need to set a Windows target to get rid of warnings when compiling
   files that include windows.h
2. By default Boost will try to automatically link against boost_system.
   In order to prevent this, we define BOOST_ALL_NO_LIB
3. Somehow, I had to include winioctl.h in Platform.cpp. According to
   the documentation from MS, this shouldn't be necessary as windows.h
   includes this as well. However, for me it didn't compile otherwise.
2019-03-11 20:42:35 -07:00
mpilman b0894295ba Remove ugly debug message 2019-03-11 17:35:06 -07:00
mpilman 668eaeb8ae Packages tested and all seems working 2019-03-07 16:49:29 -08:00
mpilman 51ccdb1c9b Remove pidof hack as it was not stable 2019-03-07 16:49:29 -08:00
mpilman da72306642 several minor bug fixes 2019-03-07 16:49:29 -08:00
mpilman 645eba7b58 fixed cmake generated symlinks 2019-03-07 16:49:29 -08:00
mpilman 55f4d78fcf Support generating el6 and el7 rpms 2019-03-07 16:49:29 -08:00
mpilman 294baa4091 Fix package naming 2019-03-07 16:49:29 -08:00
mpilman e8624efb3b several minor improvements 2019-03-07 16:49:29 -08:00
mpilman 42e0a89a66 This makes package generation work
Resulting packages are not tested yet
2019-03-07 16:49:29 -08:00
mpilman 2537f26de6 First implementaion of more user-friendly cpack
Up unto here this code is only very rudiemantery tested.

This is a firest attempt of making cpack more user-friendly.
The basic idea is to generate a component for package type so
that we can have different paths depending on whether we build
an RPM, a DEB, a TGZ, or a MacOS installer. The cpack package
config file will then chose the correct components to use.

In a later point this should make it possible to build these
with `make packages` and the ugly iteration with calling cmake
between each package would be obsolete. While this solution is
a bit more bloated, it is also much more flexible and it will be
much easier to use.

Another benefit is, that this will get rid of all warnings during
a cpack run
2019-03-07 16:49:29 -08:00
mpilman 4a4af6fb2c Make cmake build fail if old build system was used
This changes makes a cmake build check for an existing
versions.h file in the source directory before it builds
anything else. If it finds it it will fail the build.

This is to prevent confusion when someone tries to use cmake
on a source directory where the old build system was used
before (as this is not supported).
2019-03-06 13:48:18 -08:00
Markus Pilman 590863479b Update cmake/ConfigureCompiler.cmake
Co-Authored-By: jzhou77 <jingyuzhou@gmail.com>
2019-03-05 14:58:44 -08:00
Jingyu Zhou bdf0fc4ffb Enable .pdb file generation on Windows
Add compiler flag for generating program database file (PDB) for Visual Studio.
2019-03-05 14:58:44 -08:00
Andrew Noyes 1292f5c59a Add TEST_LOG_FORMAT to cmake 2019-02-21 14:36:01 -08:00
mpilman b41611694f Fix weird cmake behavior with cached variables 2019-02-19 22:06:45 -08:00
mpilman 1395da9a8f keep test IDs the same over several cmake runs
CACHE INTRNAL was a bad choice for setting this
variable as it will keep increasing whenever cmake
runs. So we should use PARENT_SCOPE instead
2019-02-19 22:06:45 -08:00
mpilman e8af6512ec Generate distinct pseudo-random number for each test
Fixes #1161
2019-02-19 22:06:45 -08:00
mpilman 9b14aeb156 Tell cmake not to link/install on ide build 2019-02-19 15:16:59 -08:00
mpilman 41128d5bb5 Remove packages->package dependency
There is a cmake bug not allowing us to have this
dependency :(
2019-02-19 11:11:25 -08:00
mpilman acad3e8201 Put rpm, deb, or msi into the packages folder
This additionally fixes a dependency bug on Windows
2019-02-19 11:11:25 -08:00
mpilman 0bbbfb6ee3 Address Andrew's review comments 2019-02-15 00:01:42 -08:00
mpilman 3401c1f771 add option to fail cmake if not all dependencies are found 2019-02-15 00:01:42 -08:00
mpilman a0b20ef2c1 Add initscripts dependency to foundationdb-server 2019-02-15 00:01:42 -08:00
mpilman b06aa3b8ea Several bug fixes - debian package working
Did some manual minor testing on the debian package
2019-02-15 00:01:42 -08:00
mpilman a20e58bb4c Added linux-pkgs command to docker-compose file 2019-02-15 00:01:42 -08:00
mpilman 4266429dcf Fixed python dependency 2019-02-15 00:01:42 -08:00
mpilman 990e084fa2 Debian packages are successfully generated 2019-02-15 00:01:42 -08:00
mpilman ddddda7328 docker-compose can now build rpm
weirdly it still generates a foundationd-unspecified
rpm. However, it is empty and can be ignored for now
2019-02-15 00:01:42 -08:00
mpilman 5f25e5cb32 docker container and docker-compose for cmake
This is still in the testing-phase. However, it should
be mostly functional
2019-02-15 00:01:42 -08:00
mpilman 6529e2790b several minor bug fixes 2019-02-15 00:01:42 -08:00
mpilman f6ab577002 Fix Windows issue with libressl 2019-02-15 00:01:42 -08:00
mpilman 723f208cd1 Fix cmake output 2019-02-15 00:01:42 -08:00
mpilman 458c14ffcd Ruby bindings for cmake + gem generation
make packages will now also generate a gem file and
put it into the packages directory within the build directory
2019-02-15 00:01:42 -08:00
mpilman 9b7dcc4ed5 flow, python, and go bindings 2019-02-15 00:01:42 -08:00
mpilman 0d7d1a2b63 added IDE support for cmake 2019-02-15 00:01:42 -08:00
mpilman cd6b72b492 generate coverage.target.xml files 2019-02-15 00:01:42 -08:00
mpilman 75f692b931 simplify actorcompiler and target to compile coveragetool 2019-02-15 00:01:42 -08:00
mpilman 308db3772c build sphinx documentation 2019-02-15 00:01:42 -08:00
mpilman 543e6b9000 intermediate commit 2019-02-15 00:01:42 -08:00
mpilman f601aa7407 Make Java an optional dependency 2019-02-15 00:01:42 -08:00
Andrew Noyes 1ea58c1e5e Actually change name of flag 2019-02-13 10:44:58 -08:00
Andrew Noyes 3a38bff8ee Use DISABLE_ACTOR_WITHOUT_WAIT_WARNING consistently 2019-02-13 10:30:35 -08:00
mpilman 6da5971e79 Guard all versions.h to not break old WIN32 build 2019-02-08 16:06:00 -08:00
mpilman aeccec0ef8 Fix merge conflicts 2019-02-07 18:09:10 -08:00
mpilman 9c3e5e221f started macos builder 2019-02-07 18:09:10 -08:00
mpilman 7e16ca4caa Generate Windows-Installer with cmake 2019-02-07 15:37:04 -08:00
mpilman 7e26b4ef0d Address comments from PR 2019-02-07 15:37:04 -08:00
mpilman 014e12e142 some more windows installer modifications 2019-02-07 15:37:04 -08:00
mpilman dcbb248c69 Windows installer base functionality
CPack can now generate a MSI (needs WIX to be
installed). However, this currently does not include
fdbservice - I need to figure out how to install this
first.
2019-02-07 15:37:04 -08:00
mpilman 22612c94d9 Remove cmake debugging messages 2019-02-07 15:37:04 -08:00
mpilman b2bea2d3e7 Added hint for CMake to find installed LibreSSL 2019-02-07 15:37:04 -08:00
mpilman e45295a1f5 Added support for TLS 2019-02-07 15:37:04 -08:00
mpilman f03cd6aee1 make c bindings work on Windows 2019-02-07 15:37:04 -08:00
mpilman 8a94d80deb fdbservice and fdbrpc now compiling 2019-02-07 15:37:04 -08:00
mpilman 7a858b902d Most of FDB compiling on Windows with cmake 2019-02-07 15:37:04 -08:00
Andrew Noyes aa9a7a6dc0 Make init script executable in cmake install 2019-01-31 09:38:43 -08:00
mpilman 58964af7e1 ctest improvements - #1058
- A set of CMake variables controls whether to keep
  the simfdb directory and the traces and whether we
  want to aggregate the traces into a single file
- Test labels now contain the directory they are in
  so that one can now run `ctest -R fast/`
- A different binary can be used for restart tests. CMake
  will automatically look for an installed fdb and use that
  by default. If none is found, it will use the built one
  but it will also print a warning
- CMake will throw an error if there are any text files in
  the tests directory that are not associated with a test.
- Moved testing from fdbserver/CMakeLists.txt to
  tests/CMakeLists.txt
- Moved fdb testing functions to its own cmake module
2019-01-22 14:34:51 -08:00
mpilman a31df1b0a6 Addressed comments from pull requests
- Moved some larger sections in CMakeLists.txt into separate files
- Fixed an include issue on OS X
- Fixed boost version
- Use PROJECT_VERSION by default instead of using versions.target
2019-01-02 13:32:26 -08:00
Markus Pilman 879cb31fa2 first version of debian build 2018-12-13 15:57:12 -08:00
Markus Pilman 1007708dfb RPM package now building correctly 2018-12-13 15:56:45 -08:00
Markus Pilman 0b8af89826 Added missing dependency between boostProject and boost_target 2018-12-13 15:56:11 -08:00
Markus Pilman f13ad0d50a install fdb service with rpm and add dependencies 2018-12-13 15:55:53 -08:00
Markus Pilman c654b1bb61 First version of working rpm packages 2018-12-13 15:55:31 -08:00
Markus Pilman f7a87e52d9 Use system boost if installed 2018-12-13 15:53:08 -08:00
Markus Pilman df0f491c29 Some more improvements to the build and preparations for packaging 2018-12-13 15:04:13 -08:00
Markus Pilman dce290909d fdbserver now compiling 2018-12-13 14:13:47 -08:00
mpilman f5fcb666c5 flow compiling with cmake on OS X 2018-12-13 13:58:06 -08:00