From f9e74d8a12a684b661fdb9df2963a2c274a63a85 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Fri, 20 Mar 2020 12:29:35 -0400 Subject: [PATCH] Updated configuration for Embarcadero clang based compilers --- include/boost/config/auto_link.hpp | 2 +- include/boost/config/compiler/borland.hpp | 2 +- include/boost/config/compiler/codegear.hpp | 12 +++++------- include/boost/config/requires_threads.hpp | 2 +- include/boost/cstdint.hpp | 4 ++-- test/Jamfile.v2 | 1 + test/abi/main.cpp | 2 +- test/boost_no_is_abstract.ipp | 2 +- test/cstdint_test.cpp | 2 +- test/cstdint_test2.cpp | 2 +- test/math_info.cpp | 2 +- 11 files changed, 16 insertions(+), 17 deletions(-) diff --git a/include/boost/config/auto_link.hpp b/include/boost/config/auto_link.hpp index 30b87021..98a1e39e 100644 --- a/include/boost/config/auto_link.hpp +++ b/include/boost/config/auto_link.hpp @@ -485,7 +485,7 @@ BOOST_LIB_SUFFIX: Static/import libraries extension (".lib", ".a") for the c #endif -#endif // _MSC_VER || __BORLANDC__ +#endif // _MSC_VER || BOOST_BORLANDC // // finally undef any macros we may have set: diff --git a/include/boost/config/compiler/borland.hpp b/include/boost/config/compiler/borland.hpp index 12872435..f0b0b20f 100644 --- a/include/boost/config/compiler/borland.hpp +++ b/include/boost/config/compiler/borland.hpp @@ -17,7 +17,7 @@ #endif // last known compiler version: -#if (__BORLANDC__ > 0x613) +#if (__BORLANDC__ > 0x740) //# if defined(BOOST_ASSERT_CONFIG) # error "boost: Unknown compiler version - please run the configure tests and report the results" //# else diff --git a/include/boost/config/compiler/codegear.hpp b/include/boost/config/compiler/codegear.hpp index 0912412d..d197e1ec 100644 --- a/include/boost/config/compiler/codegear.hpp +++ b/include/boost/config/compiler/codegear.hpp @@ -20,6 +20,7 @@ # endif #define BOOST_NO_FENV_H /* temporarily disable this until we can link against fegetround fesetround feholdexcept */ +#define BOOST_NO_CXX11_HDR_EXCEPTION /* Reported this bug to Embarcadero with the latest C++ Builder Rio release */ /* @@ -35,12 +36,6 @@ # define BOOST_HAS_MS_INT64 #endif // -// check for exception handling support: -// -#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif -// // all versions have a : // #if !defined(__STRICT_ANSI__) @@ -151,7 +146,7 @@ // // versions check: // last known and checked version is 0x621 -#if (__CODEGEARC__ > 0x621) +#if (__CODEGEARC__ > 0x740) # if defined(BOOST_ASSERT_CONFIG) # error "boost: Unknown compiler version - please run the configure tests and report the results" # else @@ -209,6 +204,8 @@ # define BOOST_HAS_PRAGMA_ONCE #endif +#define BOOST_NO_FENV_H + // // C++0x macros: // @@ -255,6 +252,7 @@ #define BOOST_NO_CXX11_REF_QUALIFIERS #define BOOST_NO_CXX11_FINAL #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_DECLTYPE_N3276 #define BOOST_NO_CXX11_UNRESTRICTED_UNION // C++ 14: diff --git a/include/boost/config/requires_threads.hpp b/include/boost/config/requires_threads.hpp index cfaff230..c23a2ce3 100644 --- a/include/boost/config/requires_threads.hpp +++ b/include/boost/config/requires_threads.hpp @@ -54,7 +54,7 @@ // Compaq Tru64 Unix cxx # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread" -#elif defined __BORLANDC__ +#elif defined BOOST_BORLANDC // Borland # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" diff --git a/include/boost/cstdint.hpp b/include/boost/cstdint.hpp index 9c88d13b..967aacfd 100644 --- a/include/boost/cstdint.hpp +++ b/include/boost/cstdint.hpp @@ -306,7 +306,7 @@ namespace boost // 64-bit types + intmax_t and uintmax_t ----------------------------------// # if defined(BOOST_HAS_LONG_LONG) && \ - !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ + !defined(BOOST_MSVC) && !defined(BOOST_BORLANDC) && \ (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) # if defined(__hpux) @@ -451,7 +451,7 @@ INT#_C macros if they're not already defined (John Maddock). #ifndef INT64_C # define INT64_C(value) value##i64 #endif -# ifdef __BORLANDC__ +# ifdef BOOST_BORLANDC // Borland bug: appending ui8 makes the type a signed char # define UINT8_C(value) static_cast(value##u) # else diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 5b2a9ad9..f1104497 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -61,6 +61,7 @@ test-suite config : #requirements off gcc-4.4.7,0x:no # does not compile with -fno-rtti + embarcadero:no # does not compile with -fno-rtti [ check-target-builds has_atomic_lib : atomic ] [ check-target-builds has_pthread_lib : pthread ] [ check-target-builds has_rt_lib : rt ] diff --git a/test/abi/main.cpp b/test/abi/main.cpp index e8f9d139..808c583d 100644 --- a/test/abi/main.cpp +++ b/test/abi/main.cpp @@ -11,7 +11,7 @@ #include #ifdef BOOST_MSVC #pragma pack(1) -#elif defined(__BORLANDC__) +#elif defined(BOOST_BORLANDC) #pragma option -Ve- -Vx- -a1 -b- #endif #include diff --git a/test/boost_no_is_abstract.ipp b/test/boost_no_is_abstract.ipp index 257318ee..93370d61 100644 --- a/test/boost_no_is_abstract.ipp +++ b/test/boost_no_is_abstract.ipp @@ -12,7 +12,7 @@ namespace boost_no_is_abstract{ -#if defined(__CODEGEARC__) +#if defined(BOOST_CODEGEARC) template struct is_abstract_test { diff --git a/test/cstdint_test.cpp b/test/cstdint_test.cpp index f3cbd9bb..d2223118 100644 --- a/test/cstdint_test.cpp +++ b/test/cstdint_test.cpp @@ -93,7 +93,7 @@ void integral_constant_checker::check() // the following function simply verifies that the type // of an integral constant is correctly defined: // -#ifdef __BORLANDC__ +#ifdef BOOST_BORLANDC #pragma option -w-8008 #pragma option -w-8066 #endif diff --git a/test/cstdint_test2.cpp b/test/cstdint_test2.cpp index 91ff28f4..f2e2d276 100644 --- a/test/cstdint_test2.cpp +++ b/test/cstdint_test2.cpp @@ -103,7 +103,7 @@ void integral_constant_checker::check() // the following function simply verifies that the type // of an integral constant is correctly defined: // -#ifdef __BORLANDC__ +#ifdef BOOST_BORLANDC #pragma option -w-8008 #pragma option -w-8066 #endif diff --git a/test/math_info.cpp b/test/math_info.cpp index 47fe9ffe..98f5d73b 100644 --- a/test/math_info.cpp +++ b/test/math_info.cpp @@ -281,7 +281,7 @@ int main() "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" "Macros from " << std::endl; -#ifdef __BORLANDC__ +#ifdef BOOST_BORLANDC // Turn off hardware exceptions so we don't just abort // when calling numeric_limits members. _control87(MCW_EM,MCW_EM);