diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2023-02-22 13:32:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-22 13:32:35 +0100 |
commit | 4ea44f59178bba284ec90eea7352ce95ecd3ee6a (patch) | |
tree | cb70c0bb344cb9412e9a8d1217cf1831019ae484 | |
parent | 54406e2ff1e39a3245d04253648153d5f4751938 (diff) | |
parent | 606a42cd58a161c971723d10713699d922530a28 (diff) | |
download | ATCD-4ea44f59178bba284ec90eea7352ce95ecd3ee6a.tar.gz |
Merge pull request #2052 from jwillemsen/jwi-gcc14
ACE/TAO now require C++14 or newer
-rw-r--r-- | .github/workflows/linux.yml | 15 | ||||
-rw-r--r-- | ACE/NEWS | 4 | ||||
-rw-r--r-- | ACE/ace/Global_Macros.h | 6 | ||||
-rw-r--r-- | ACE/ace/config-win32-msvc-14.h | 131 | ||||
-rw-r--r-- | ACE/ace/config-win32-msvc-141.h | 107 | ||||
-rw-r--r-- | ACE/ace/config-win32-msvc.h | 2 | ||||
-rw-r--r-- | ACE/examples/Logger/Acceptor-server/server_loggerd.cpp | 1 | ||||
-rw-r--r-- | ACE/include/makeinclude/platform_linux_clang.GNU | 10 | ||||
-rw-r--r-- | ACE/include/makeinclude/platform_macosx_common.GNU | 2 | ||||
-rw-r--r-- | TAO/tao/PortableServer/Active_Policy_Strategies.cpp | 32 |
10 files changed, 133 insertions, 177 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 310922433cd..8524c860e2d 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -24,16 +24,6 @@ jobs: fail-fast: false matrix: include: - - CC: gcc-4.8 - CXX: g++-4.8 - PackageDeps: g++-4.8 - platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU - os: ubuntu-18.04 - - CC: gcc-6 - CXX: g++-6 - PackageDeps: g++-6 - platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU - os: ubuntu-18.04 - CC: gcc-7 CXX: g++-7 PackageDeps: g++-7 @@ -67,11 +57,6 @@ jobs: optional_macros: CCFLAGS+=-std=c++20 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-22.04 - - CC: clang-5.0 - CXX: clang++-5.0 - PackageDeps: clang-5.0 - platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU - os: ubuntu-18.04 - CC: clang-6.0 CXX: clang++-6.0 PackageDeps: clang-6.0 @@ -2,7 +2,9 @@ USER VISIBLE CHANGES BETWEEN ACE-7.0.11 and ACE-7.1.0 ===================================================== . Removed support for Windows CE, OpenVMS, HPUX, AIX, RTEMS, - Pharlap, and Solaris + Pharlap, Solaris, and Visual Studio 2015 + +. ACE/TAO now require C++14 or newer USER VISIBLE CHANGES BETWEEN ACE-7.0.10 and ACE-7.0.11 ====================================================== diff --git a/ACE/ace/Global_Macros.h b/ACE/ace/Global_Macros.h index bc9b20a4962..5520938f01c 100644 --- a/ACE/ace/Global_Macros.h +++ b/ACE/ace/Global_Macros.h @@ -57,9 +57,9 @@ # define ACE_SET_BITS(WORD, BITS) (WORD |= (BITS)) # define ACE_CLR_BITS(WORD, BITS) (WORD &= ~(BITS)) -#if !defined (ACE_HAS_CPP11) -# error ACE/TAO require C++11 compliance, please upgrade your compiler and/or fix the platform configuration for your environment -#endif /* !ACE_HAS_CPP11 */ +#if !defined (ACE_HAS_CPP14) +# error ACE/TAO require C++14 compliance, please upgrade your compiler and/or fix the platform configuration for your environment +#endif #define ACE_UNIMPLEMENTED_FUNC(f) f = delete; diff --git a/ACE/ace/config-win32-msvc-14.h b/ACE/ace/config-win32-msvc-14.h deleted file mode 100644 index 18fea9a9a5e..00000000000 --- a/ACE/ace/config-win32-msvc-14.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -*- C++ -*- */ -//============================================================================= -/** - * @file config-win32-msvc-14.h - * - * @brief Microsoft Visual C++ 14.0 configuration file. - * - * This file is the ACE configuration file for Microsoft Visual C++ version 2015. - * - * @note Do not include this file directly, include config-win32.h instead. - */ -//============================================================================= - -#ifndef ACE_CONFIG_WIN32_MSVC_14_H -#define ACE_CONFIG_WIN32_MSVC_14_H -#include /**/ "ace/pre.h" - -#ifndef ACE_CONFIG_WIN32_H -#error Use config-win32.h in config.h instead of this header -#endif /* ACE_CONFIG_WIN32_H */ - -#ifndef ACE_WIN32_VC14 -# define ACE_WIN32_VC14 -#endif - -// Windows' timeval is non-conformant (defined in terms of long instead of -// time_t) and VC8 changed time_t to a 64-bit value even when compiling a -// 32-bit application. Therefore, ace/Time_Value needs to rearrange a few -// things for this compiler. See Time_Value.h for complete details. -#if !defined (_USE_32BIT_TIME_T) -# define ACE_HAS_TIME_T_LONG_MISMATCH -#endif - -#define ACE_HAS_ITOA - -#define ACE_ITOA_EQUIVALENT ::_itoa -#define ACE_STRCASECMP_EQUIVALENT ::_stricmp -#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp -#define ACE_WCSDUP_EQUIVALENT ::_wcsdup -#define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X))) - -#define ACE_HAS_SIG_ATOMIC_T - -#define ACE_LACKS_STRPTIME - -#define ACE_HAS_INTRIN_H -#define ACE_HAS_INTRINSIC_INTERLOCKED - -#define ACE_HAS_INTRINSIC_BYTESWAP - -#define ACE_LACKS_STRRECVFD - -// Platform provides ACE_TLI function prototypes. -// For Win32, this is not really true, but saves a lot of hassle! -#define ACE_HAS_TLI_PROTOTYPES - -// Platform support linebuffered streaming is broken -#define ACE_LACKS_LINEBUFFERED_STREAMBUF - -// ace/iostream.h does not work with the standard cpp library (yet). -#if !defined (ACE_USES_OLD_IOSTREAMS) -# define ACE_LACKS_ACE_IOSTREAM -#endif /* ! ACE_USES_OLD_IOSTREAMS */ - -// There are too many instances of this warning to fix it right now. -// Maybe in the future. - -// Disable warning of using Microsoft Extension. -#pragma warning(disable:4231) - -// 'class1' : inherits 'class2::member' via dominance -#pragma warning(disable:4250) - -#if !defined (ACE_HAS_TR24731_2005_CRT) -# define ACE_HAS_TR24731_2005_CRT -#endif - -// A template can not be exported. Only an instantiation may be exported. -#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT - -// Windows Vista and Windows Server 2008 and newer do have native condition -// variables, but this is commented out because the support in ACE hasn't -// been completed -// #if defined (_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600) -// # define ACE_HAS_WTHREADS_CONDITION_VARIABLE -// # undef ACE_LACKS_COND_T -// #endif - -#define ACE_HAS_POSIX_TIME 1 -#define ACE_LACKS_TIMESPEC_T 1 - -// According to MS the Visual Studio 2015 C-runtime has a -// C99 compliant vsnprintf/vsnwprintf, this is a change compared to -// previous versions -#define ACE_HAS_C99_VSNPRINTF -#define ACE_HAS_C99_VSNWPRINTF - -// Visual Studio 2015 has 3 parameter wcstok -#define ACE_HAS_3_PARAM_WCSTOK - -// Visual Studio 2015 has adequate C++11 support -#define ACE_HAS_CPP11 - -#define ACE_PUTENV_EQUIVALENT ::_putenv -#define ACE_TEMPNAM_EQUIVALENT ::_tempnam -#define ACE_STRDUP_EQUIVALENT ::_strdup -#define ACE_MKDIR_EQUIVALENT ::_mkdir -#define ACE_ACCESS_EQUIVALENT ::_access -#define ACE_CHDIR_EQUIVALENT ::_chdir -#define ACE_RMDIR_EQUIVALENT ::_rmdir -#define ACE_GETCWD_EQUIVALENT ::_getcwd -#define ACE_SWAB_EQUIVALENT ::_swab -#define ACE_UNLINK_EQUIVALENT ::_unlink - -#define ACE_HAS_STRNLEN -#define ACE_HAS_WCSNLEN - -#define ACE_LACKS_STRUCT_DIR -#define ACE_LACKS_OPENDIR -#define ACE_LACKS_CLOSEDIR -#define ACE_LACKS_READDIR - -#define ACE_LACKS_MODE_T -#define ACE_LACKS_PID_T - -#define ACE_LACKS_NLINK_T -#define ACE_LACKS_UID_T -#define ACE_LACKS_GID_T - -#include /**/ "ace/post.h" -#endif /* ACE_CONFIG_WIN32_MSVC_14_H */ diff --git a/ACE/ace/config-win32-msvc-141.h b/ACE/ace/config-win32-msvc-141.h index c6376395d13..284071e62ed 100644 --- a/ACE/ace/config-win32-msvc-141.h +++ b/ACE/ace/config-win32-msvc-141.h @@ -19,11 +19,116 @@ #error Use config-win32.h in config.h instead of this header #endif /* ACE_CONFIG_WIN32_H */ +#ifndef ACE_WIN32_VC14 +# define ACE_WIN32_VC14 +#endif #ifndef ACE_WIN32_VC141 # define ACE_WIN32_VC141 #endif -#include "ace/config-win32-msvc-14.h" +// Windows' timeval is non-conformant (defined in terms of long instead of +// time_t) and VC8 changed time_t to a 64-bit value even when compiling a +// 32-bit application. Therefore, ace/Time_Value needs to rearrange a few +// things for this compiler. See Time_Value.h for complete details. +#if !defined (_USE_32BIT_TIME_T) +# define ACE_HAS_TIME_T_LONG_MISMATCH +#endif + +#define ACE_HAS_ITOA + +#define ACE_ITOA_EQUIVALENT ::_itoa +#define ACE_STRCASECMP_EQUIVALENT ::_stricmp +#define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp +#define ACE_WCSDUP_EQUIVALENT ::_wcsdup +#define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X))) + +#define ACE_HAS_SIG_ATOMIC_T + +#define ACE_LACKS_STRPTIME + +#define ACE_HAS_INTRIN_H +#define ACE_HAS_INTRINSIC_INTERLOCKED + +#define ACE_HAS_INTRINSIC_BYTESWAP + +#define ACE_LACKS_STRRECVFD + +// Platform provides ACE_TLI function prototypes. +// For Win32, this is not really true, but saves a lot of hassle! +#define ACE_HAS_TLI_PROTOTYPES + +// Platform support linebuffered streaming is broken +#define ACE_LACKS_LINEBUFFERED_STREAMBUF + +// ace/iostream.h does not work with the standard cpp library (yet). +#if !defined (ACE_USES_OLD_IOSTREAMS) +# define ACE_LACKS_ACE_IOSTREAM +#endif /* ! ACE_USES_OLD_IOSTREAMS */ + +// There are too many instances of this warning to fix it right now. +// Maybe in the future. + +// Disable warning of using Microsoft Extension. +#pragma warning(disable:4231) + +// 'class1' : inherits 'class2::member' via dominance +#pragma warning(disable:4250) + +#if !defined (ACE_HAS_TR24731_2005_CRT) +# define ACE_HAS_TR24731_2005_CRT +#endif + +// A template can not be exported. Only an instantiation may be exported. +#define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT + +// Windows Vista and Windows Server 2008 and newer do have native condition +// variables, but this is commented out because the support in ACE hasn't +// been completed +// #if defined (_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600) +// # define ACE_HAS_WTHREADS_CONDITION_VARIABLE +// # undef ACE_LACKS_COND_T +// #endif + +#define ACE_HAS_POSIX_TIME 1 +#define ACE_LACKS_TIMESPEC_T 1 + +// According to MS the Visual Studio 2015 C-runtime has a +// C99 compliant vsnprintf/vsnwprintf, this is a change compared to +// previous versions +#define ACE_HAS_C99_VSNPRINTF +#define ACE_HAS_C99_VSNWPRINTF + +// Visual Studio 2015 has 3 parameter wcstok +#define ACE_HAS_3_PARAM_WCSTOK + +// Visual Studio 2015 has adequate C++11 support +#define ACE_HAS_CPP11 + +#define ACE_PUTENV_EQUIVALENT ::_putenv +#define ACE_TEMPNAM_EQUIVALENT ::_tempnam +#define ACE_STRDUP_EQUIVALENT ::_strdup +#define ACE_MKDIR_EQUIVALENT ::_mkdir +#define ACE_ACCESS_EQUIVALENT ::_access +#define ACE_CHDIR_EQUIVALENT ::_chdir +#define ACE_RMDIR_EQUIVALENT ::_rmdir +#define ACE_GETCWD_EQUIVALENT ::_getcwd +#define ACE_SWAB_EQUIVALENT ::_swab +#define ACE_UNLINK_EQUIVALENT ::_unlink + +#define ACE_HAS_STRNLEN +#define ACE_HAS_WCSNLEN + +#define ACE_LACKS_STRUCT_DIR +#define ACE_LACKS_OPENDIR +#define ACE_LACKS_CLOSEDIR +#define ACE_LACKS_READDIR + +#define ACE_LACKS_MODE_T +#define ACE_LACKS_PID_T + +#define ACE_LACKS_NLINK_T +#define ACE_LACKS_UID_T +#define ACE_LACKS_GID_T #if _MSVC_LANG >= 201402L # define ACE_HAS_CPP14 diff --git a/ACE/ace/config-win32-msvc.h b/ACE/ace/config-win32-msvc.h index 1e1b063d420..e467bf0230b 100644 --- a/ACE/ace/config-win32-msvc.h +++ b/ACE/ace/config-win32-msvc.h @@ -39,8 +39,6 @@ # include "ace/config-win32-msvc-142.h" #elif (_MSC_VER >= 1910) # include "ace/config-win32-msvc-141.h" -#elif (_MSC_VER >= 1900) -# include "ace/config-win32-msvc-14.h" #else # error This version of Microsoft Visual C++ is not supported. #endif diff --git a/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp b/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp index ba53e2b3af6..dc3a2af3b01 100644 --- a/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp +++ b/ACE/examples/Logger/Acceptor-server/server_loggerd.cpp @@ -260,7 +260,6 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) return 0; } -//typedef ACE_Test_and_Set<ACE_Null_Mutex, sig_atomic_t> ACE_SINGLETON_TEMPLATE_INSTANTIATE(ACE_Singleton, ACE_Reactor, ACE_Null_Mutex); ACE_SINGLETON_TEMPLATE_INSTANTIATE(ACE_Singleton, Options, ACE_Null_Mutex); #define ACE_Test_and_Set_type \ diff --git a/ACE/include/makeinclude/platform_linux_clang.GNU b/ACE/include/makeinclude/platform_linux_clang.GNU index 2cfc0accbec..a0fed4aa604 100644 --- a/ACE/include/makeinclude/platform_linux_clang.GNU +++ b/ACE/include/makeinclude/platform_linux_clang.GNU @@ -18,12 +18,6 @@ else CXX_MAJOR_VERSION := $(shell $(CXX) -dumpversion | sed -e 's/[^0-9\.]//g' | sed -e 's/\..*$$//') endif -# clang5 has C++03 as default C++ version, enable this to be C++11 -# the older clang versions all return 4.2.1 as part of dumpversion -ifeq ($(findstring $(CXX_MAJOR_VERSION),4),$(CXX_MAJOR_VERSION)) - c++11 ?= 1 -endif - CCFLAGS += $(CFLAGS) DCFLAGS += -g DLD = $(CXX) @@ -45,6 +39,10 @@ ifeq ($(c++11),1) CCFLAGS += -std=c++11 endif +ifeq ($(c++14),1) + CCFLAGS += -std=c++14 +endif + ifeq ($(no_deprecated),1) CCFLAGS += -Wno-deprecated-declarations endif diff --git a/ACE/include/makeinclude/platform_macosx_common.GNU b/ACE/include/makeinclude/platform_macosx_common.GNU index 342883b2855..315521a7f8f 100644 --- a/ACE/include/makeinclude/platform_macosx_common.GNU +++ b/ACE/include/makeinclude/platform_macosx_common.GNU @@ -42,7 +42,7 @@ SOBUILD = -o $(VSHDIR)$*.dylib $< ifeq ($(findstring g++,$(CXX)),)# include $(ACE_ROOT)/include/makeinclude/platform_g++_common.GNU else - c++11 ?= 1 + c++14 ?= 1 include $(ACE_ROOT)/include/makeinclude/platform_clang_common.GNU endif diff --git a/TAO/tao/PortableServer/Active_Policy_Strategies.cpp b/TAO/tao/PortableServer/Active_Policy_Strategies.cpp index a2a2ce4319b..244401662bf 100644 --- a/TAO/tao/PortableServer/Active_Policy_Strategies.cpp +++ b/TAO/tao/PortableServer/Active_Policy_Strategies.cpp @@ -99,13 +99,13 @@ namespace TAO case ::PortableServer::SINGLE_THREAD_MODEL : { #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_MICRO) && !defined (CORBA_E_COMPACT) - this->thread_strategy_.reset (new ThreadStrategySingle ()); + this->thread_strategy_ = std::make_unique<ThreadStrategySingle> (); #endif /* TAO_HAS_MINIMUM_POA == 0 */ break; } case ::PortableServer::ORB_CTRL_MODEL : { - this->thread_strategy_.reset (new ThreadStrategyORBControl ()); + this->thread_strategy_ = std::make_unique<ThreadStrategyORBControl> (); break; } } @@ -118,13 +118,13 @@ namespace TAO { case ::PortableServer::SYSTEM_ID : { - this->id_assignment_strategy_.reset (new IdAssignmentStrategySystem ()); + this->id_assignment_strategy_ = std::make_unique<IdAssignmentStrategySystem> (); break; } case ::PortableServer::USER_ID : { #if !defined (CORBA_E_MICRO) - this->id_assignment_strategy_.reset (new IdAssignmentStrategyUser ()); + this->id_assignment_strategy_ = std::make_unique<IdAssignmentStrategyUser> (); #endif /* CORBA_E_MICRO */ break; } @@ -139,13 +139,13 @@ namespace TAO case ::PortableServer::MULTIPLE_ID : { #if !defined (CORBA_E_MICRO) - this->id_uniqueness_strategy_.reset (new IdUniquenessStrategyMultiple ()); + this->id_uniqueness_strategy_ = std::make_unique<IdUniquenessStrategyMultiple> (); #endif /* CORBA_E_MICRO */ break; } case ::PortableServer::UNIQUE_ID : { - this->id_uniqueness_strategy_.reset (new IdUniquenessStrategyUnique ()); + this->id_uniqueness_strategy_ = std::make_unique<IdUniquenessStrategyUnique> (); break; } } @@ -158,13 +158,13 @@ namespace TAO { case ::PortableServer::RETAIN : { - this->servant_retention_strategy_.reset (new ServantRetentionStrategyRetain ()); + this->servant_retention_strategy_ = std::make_unique<ServantRetentionStrategyRetain> (); break; } case ::PortableServer::NON_RETAIN : { #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_MICRO) && !defined (CORBA_E_COMPACT) - this->servant_retention_strategy_.reset (new ServantRetentionStrategyNonRetain ()); + this->servant_retention_strategy_ = std::make_unique<ServantRetentionStrategyNonRetain> (); #endif /* TAO_HAS_MINIMUM_POA == 0 */ break; } @@ -179,13 +179,13 @@ namespace TAO case ::PortableServer::PERSISTENT : { #if !defined (CORBA_E_MICRO) - this->lifespan_strategy_.reset (new LifespanStrategyPersistent ()); + this->lifespan_strategy_ = std::make_unique<LifespanStrategyPersistent> (); #endif /* CORBA_E_MICRO */ break; } case ::PortableServer::TRANSIENT : { - this->lifespan_strategy_.reset (new LifespanStrategyTransient ()); + this->lifespan_strategy_ = std::make_unique<LifespanStrategyTransient> (); break; } } @@ -199,13 +199,13 @@ namespace TAO case ::PortableServer::IMPLICIT_ACTIVATION : { #if !defined (CORBA_E_MICRO) && !defined (CORBA_E_COMPACT) - this->implicit_activation_strategy_.reset (new ImplicitActivationStrategyImplicit ()); + this->implicit_activation_strategy_= std::make_unique<ImplicitActivationStrategyImplicit> (); #endif /* CORBA_E_MICRO */ break; } case ::PortableServer::NO_IMPLICIT_ACTIVATION : { - this->implicit_activation_strategy_.reset (new ImplicitActivationStrategyExplicit ()); + this->implicit_activation_strategy_ = std::make_unique<ImplicitActivationStrategyExplicit> (); break; } } @@ -220,13 +220,13 @@ namespace TAO { case ::PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY : { - this->request_processing_strategy_.reset (new RequestProcessingStrategyAOMOnly ()); + this->request_processing_strategy_ = std::make_unique<RequestProcessingStrategyAOMOnly> (); break; } case ::PortableServer::USE_DEFAULT_SERVANT : { #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) - this->request_processing_strategy_.reset (new RequestProcessingStrategyDefaultServant ()); + this->request_processing_strategy_ = std::make_unique<RequestProcessingStrategyDefaultServant> (); #endif /* TAO_HAS_MINIMUM_POA == 0 */ break; } @@ -237,14 +237,14 @@ namespace TAO case ::PortableServer::RETAIN : { #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) - this->request_processing_strategy_.reset (new RequestProcessingStrategyServantActivator ()); + this->request_processing_strategy_ = std::make_unique<RequestProcessingStrategyServantActivator> (); #endif /* TAO_HAS_MINIMUM_POA == 0 */ break; } case ::PortableServer::NON_RETAIN : { #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO) - this->request_processing_strategy_.reset (new RequestProcessingStrategyServantLocator ()); + this->request_processing_strategy_ = std::make_unique<RequestProcessingStrategyServantLocator> (); #endif /* TAO_HAS_MINIMUM_POA == 0 */ break; } |