Set policy_max version to 4.0 to avoid error
Compatibility with CMake < 3.5 has been removed from CMake.
Add github workflow to check CMake compatibility for commonly used
versions and the newest ones.
Report event will write json formatted event into report
file.
Include Boost headers as system headers to avoid generating
excessive warnings. Enable extra tests for selected compilers
in actions.
- Change default WITH_BOOST path to reside inside source tree
to avoid permission problems or accidentally overwriting
directories outside source tree.
- If system Boost installation is not found, optionally use
header only unit test framework from location specified by
WITH_BOOST.
- Fix extra-semi warning in provider_options.hpp.
All platforms do not have dl library, but dlopen() and friends
are included in libc.
Check existence of dl lib and store into WSREP_LIB_LIBDL if found.
Access to empty vector by using operator[] may cause stdlib++
assertions to fail. Replaced the vector data access to use data()
method which is valid operation even if the vector is empty.
Added unit test to reproduce assertion with empty mutable_buffer access.
Added -D_GLIBCXX_ASSERTIONS preprocessor option to debug builds
to catch standard library misuse.
Added gcc 8 and gcc9 into travis build matrix.
Added a wsrep::thread_service interface to allow application to
inject instrumented thread, mutex and condition variable implementation
for provider.
The interface is defined in include/wsrep/thread_service.hpp.
Sample implementation is provided in dbsim/db_threads.[h|c]pp.
This patch will also clean up some remaining dependencies to
wsrep-API compilation units so that the dependency to wsrep-API
is header only. This will extending the provider support to
later wsrep-API versions.
Added version header which contains definitions for major, minor
and patch version numbers, as well as for lowest and highest supported
wsrep-API versions. The library versioning follows Semantic Versioning.
Handle CMake policy CMP0048 in top level CMakeLists.txt.
Check if the superproject has already enabled C++11 before enabling
it in CMakeLists.txt.
Added utility file atomic.hpp to select the correct atomics header
to work around issues with ancient GCC 4.4.
In order to avoid excessive build failures because of compiler
warnings, added WSREP_LIB_MAINTAINER_MODE cmake option which
must be enabled explicity in order to enable -Werror build flag.
Travis:
* Don't install all g++ versions on all build targets.
* Install addons per target to have finer control on what is needed
* Use WSREP_STRICT_BUILD_FLAGS on other targets than GCC 4.8
cmake:
* Fixed CMakeLists.txt to check only boost libraries which are
actually needed
In order to make build successful on wider number of platforms,
removed -Weffc++ from default build options. Added a new cmake
option WSREP_LIB_STRICT_BUILD_FLAGS to enable it.
with superproject definitions.
Avoid using client_service::do_2pc() in before_commit() to
determine if 2pc is actually happening, will use transaction
states to deduce that. client_service::do_2pc() should be deprecated.
Fixed a compiler warning in db_high_priority_service.cpp.
Depending on the DBMS client session allocation strategy the
client id may or may not be available when the client_session
is constructed, therefore there should be a method to assign
an id after construction. Close/cleanup methods were added to
clean up open transactions appropriately.