GEODE-2602: Fixes C++11 issues. - Fixes C++11 issues with C++/CLI. - Fixes C++11 issues with Solaris Studio 12.5. - Updated documents for current C++11 requirements.
Project: http://git-wip-us.apache.org/repos/asf/geode-native/repo Commit: http://git-wip-us.apache.org/repos/asf/geode-native/commit/e32a1500 Tree: http://git-wip-us.apache.org/repos/asf/geode-native/tree/e32a1500 Diff: http://git-wip-us.apache.org/repos/asf/geode-native/diff/e32a1500 Branch: refs/heads/develop Commit: e32a150086b2cc37898c1ec8d24155ea3822cd50 Parents: bfec2fa Author: Jacob Barrett <jbarr...@pivotal.io> Authored: Wed Mar 15 17:38:02 2017 +0000 Committer: Ernie Burghardt <eburgha...@pivotal.io> Committed: Thu Jun 22 13:54:24 2017 -0700 ---------------------------------------------------------------------- BUILDING.md | 15 +++--- CONTRIBUTING.md | 54 +-------------------- src/CMakeLists.txt | 2 +- src/cppcache/include/geode/CacheStatistics.hpp | 2 + src/cppcache/src/RegionStats.cpp | 1 - src/tests/cpp/fwklib/UDPIpc.cpp | 4 +- src/tests/cpp/fwklib/UDPIpc.hpp | 16 +++--- 7 files changed, 21 insertions(+), 73 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/BUILDING.md ---------------------------------------------------------------------- diff --git a/BUILDING.md b/BUILDING.md index 29ff26f..444cfbf 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -54,12 +54,13 @@ Due to limitations in CMake, the documentation must be built as a separate step ## All Platforms ### Required Tools -* [CMake 3.4](https://cmake.org/) or newer +* [CMake 3.8](https://cmake.org/) or newer * C++11 compiler *(see platform specific requirements)* * [Doxygen 8.11](http://www.stack.nl/~dimitri/doxygen/download.html) *(for building source documentation)* ## Mac OS X -* Mac OS X 10.12 (Sierra) +* Mac OS X 10.12 (Sierra) or newer +* XCode 8.2 or newer ### Required Tools * [XCode](https://developer.apple.com/xcode/download/) @@ -68,18 +69,18 @@ Due to limitations in CMake, the documentation must be built as a separate step `$ xcode-select --install` ### Optional Tools -* [CMake GUI](https://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.dmg) +* [CMake GUI](https://cmake.org/) * [Doxygen GUI](http://ftp.stack.nl/pub/users/dimitri/Doxygen-1.8.11.dmg) * [Eclipse CDT 8.8](https://eclipse.org/cdt/) or newer ## Windows * Windows 8.1 64-bit * Windows 10 64-bit -* Windows Server 2012 64-bit * Windows Server 2012 R2 64-bit +* Windows Server 2016 64-bit ### Required Tools -* [Visual Studio 2013](https://www.visualstudio.com) or newer +* [Visual Studio 2015](https://www.visualstudio.com) or newer * .NET 4.5.2 or later * patch.exe (available as part of GnuWin or Cygwin) @@ -96,12 +97,10 @@ Due to limitations in CMake, the documentation must be built as a separate step * [Eclipse CDT 8.8](https://eclipse.org/cdt/) or newer ## Solaris -* Solaris 10 SPARC -* Solaris 10 x86 * Solaris 11 SPARC * Solaris 11 x86 ### Required Tools -* [Solaris Studio 12.4](http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-141149.html) or newer +* [Solaris Studio 12.5](http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-141149.html) or newer http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/CONTRIBUTING.md ---------------------------------------------------------------------- diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 278f67f..e3d9ab0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,57 +44,5 @@ For C++ it is required to follow the [Google C++ Style Guide](https://google.git $ cmake --build . --target format # System Requirements +See [BUILDING.md](BUILDING.md) -## All Platforms - -### Required Tools -* [CMake 3.4](https://cmake.org/) or newer -* C++11 compiler *(see platform specific requirements)* -* [Doxygen 8.11](http://www.stack.nl/~dimitri/doxygen/download.html) *(for building source documentation)* - -## Mac OS X -* Mac OS X 10.12 (Sierra) - -### Required Tools -* [XCode](https://developer.apple.com/xcode/download/) -* Xcode command line developer tools - - `$ xcode-select --install` - -### Optional Tools -* [CMake GUI](https://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.dmg) -* [Doxygen GUI](http://ftp.stack.nl/pub/users/dimitri/Doxygen-1.8.11.dmg) -* [Eclipse CDT 8.8](https://eclipse.org/cdt/) or newer - -## Windows -* Windows 8.1 64-bit -* Windows 10 64-bit -* Windows Server 2012 64-bit -* Windows Server 2012 R2 64-bit - -### Required Tools -* [Visual Studio 2013](https://www.visualstudio.com) or newer -* [Cygwin](https://www.cygwin.com/) - -## Linux -* RHEL/CentOS 6 -* RHEL/CentOS 7 -* SLES 11 -* SLES 12 - -### Required Tools -* [GCC 4.6](https://gcc.gnu.org) or newer - -### Optional Tools -* [Eclipse CDT 8.8](https://eclipse.org/cdt/) or newer - -## Solaris -* Solaris 10 SPARC -* Solaris 10 x86 -* Solaris 11 SPARC -* Solaris 11 x86 - -### Required Tools -* [Solaris Studio 12.4](http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-141149.html) or newer - - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/src/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d3e2ee1..2c43578 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -166,7 +166,7 @@ add_library(c++11 INTERFACE) if(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro") # Force linker to error on undefined symbols in shared libraries - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z defs") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z defs -xatomic=none") # TODO cmake find a better way to set runtime libraries # C++11 requires these libraries, treat -std=c++11 as library #TODO look into CMAKE_CXX_STANDARD_LIBRARIES http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/src/cppcache/include/geode/CacheStatistics.hpp ---------------------------------------------------------------------- diff --git a/src/cppcache/include/geode/CacheStatistics.hpp b/src/cppcache/include/geode/CacheStatistics.hpp index afbb82a..fc65f89 100644 --- a/src/cppcache/include/geode/CacheStatistics.hpp +++ b/src/cppcache/include/geode/CacheStatistics.hpp @@ -22,6 +22,8 @@ #include "geode_globals.hpp" #include "geode_types.hpp" +#include <atomic> + /** * @file */ http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/src/cppcache/src/RegionStats.cpp ---------------------------------------------------------------------- diff --git a/src/cppcache/src/RegionStats.cpp b/src/cppcache/src/RegionStats.cpp index cff6e0e..e8f8004 100644 --- a/src/cppcache/src/RegionStats.cpp +++ b/src/cppcache/src/RegionStats.cpp @@ -215,7 +215,6 @@ RegionStatType::RegionStatType() m_entriesId(0), m_overflowsId(0), m_retrievesId(0), - m_nonSingleHopId(0), m_metaDataRefreshId(0), m_LoaderCallsCompletedId(0), m_LoaderCallTimeId(0), http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/src/tests/cpp/fwklib/UDPIpc.cpp ---------------------------------------------------------------------- diff --git a/src/tests/cpp/fwklib/UDPIpc.cpp b/src/tests/cpp/fwklib/UDPIpc.cpp index a5a7928..d3f9fc5 100644 --- a/src/tests/cpp/fwklib/UDPIpc.cpp +++ b/src/tests/cpp/fwklib/UDPIpc.cpp @@ -254,7 +254,7 @@ int32_t Receiver::doTask() { void Receiver::initialize() { int32_t tries = 100; - int32_t port = m_basePort; + uint16_t port = m_basePort; int32_t lockResult = m_mutex.tryacquire(); int32_t result = -1; if (lockResult != -1) { // The listener thread @@ -358,7 +358,7 @@ void Responder::initialize() { int32_t result = -1; int32_t tries = 100; while ((result < 0) && (--tries > 0)) { - int32_t port = ++m_offset + 111 + m_basePort; + uint16_t port = ++m_offset + 111 + m_basePort; result = m_io->open(ACE_INET_Addr(port, "localhost")); if (result < 0) { FWKWARN("Server failed to open io, " << errno << ", on port " << port); http://git-wip-us.apache.org/repos/asf/geode-native/blob/e32a1500/src/tests/cpp/fwklib/UDPIpc.hpp ---------------------------------------------------------------------- diff --git a/src/tests/cpp/fwklib/UDPIpc.hpp b/src/tests/cpp/fwklib/UDPIpc.hpp index 68b9ad9..dc143d9 100644 --- a/src/tests/cpp/fwklib/UDPIpc.hpp +++ b/src/tests/cpp/fwklib/UDPIpc.hpp @@ -197,15 +197,15 @@ class UDPMessageQueues : public SharedTaskObject { class Receiver : public ServiceTask { private: ACE_TSS<ACE_SOCK_Dgram> m_io; - int32_t m_basePort; + uint16_t m_basePort; ACE_thread_t m_listener; - std::atomic<int32_t> m_offset; + std::atomic<uint16_t> m_offset; std::list<std::string> m_addrs; UDPMessageQueues* m_queues; ACE_Thread_Mutex m_mutex; public: - Receiver(UDPMessageQueues* shared, int32_t port) + Receiver(UDPMessageQueues* shared, uint16_t port) : ServiceTask(shared), m_basePort(port), m_listener(0), m_mutex() { m_queues = dynamic_cast<UDPMessageQueues*>(m_shared); } @@ -224,12 +224,12 @@ class Receiver : public ServiceTask { class STReceiver : public ServiceTask { private: ACE_SOCK_Dgram m_io; - int32_t m_basePort; + uint16_t m_basePort; UDPMessageQueues* m_queues; std::string m_addr; public: - STReceiver(UDPMessageQueues* shared, int32_t port) + STReceiver(UDPMessageQueues* shared, uint16_t port) : ServiceTask(shared), m_basePort(port) { m_queues = dynamic_cast<UDPMessageQueues*>(m_shared); } @@ -272,12 +272,12 @@ class Processor : public ServiceTask { class Responder : public ServiceTask { private: ACE_TSS<ACE_SOCK_Dgram> m_io; - int32_t m_basePort; - std::atomic<int32_t> m_offset; + uint16_t m_basePort; + std::atomic<uint16_t> m_offset; UDPMessageQueues* m_queues; public: - Responder(UDPMessageQueues* shared, int32_t port) + Responder(UDPMessageQueues* shared, uint16_t port) : ServiceTask(shared), m_basePort(port) { m_queues = dynamic_cast<UDPMessageQueues*>(m_shared); }