Subject: Re: [Boost-bugs] [Boost C++ Libraries] #12946: Definition of BOOST_ARCH_ARM does not check __aarch64__
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-10-04 04:00:59
#12946: Definition of BOOST_ARCH_ARM does not check __aarch64__
-----------------------------------------------+---------------------------
Reporter: Sergey Shestakov <s_shestakov@â¦> | Owner: René Rivera
Type: Bugs | Status: new
Milestone: To Be Determined | Component: predef USE
| GITHUB
Version: Boost 1.63.0 | Severity: Problem
Resolution: | Keywords: arm arm64
-----------------------------------------------+---------------------------
Comment (by James E. King, III):
Something like this should help - I was going to submit a pull request on
github however it looks like there's quite a bit more that needs to be
done here including detecting the difference between 32-bit and 64-bit
(unless the architecture/) is doing that; and also the major and minor
version of ARM should be updated to include 8.1A, 8.2A, 8.3A in all the
ways the different compilers express it.
{{{
diff --git a/include/boost/predef/architecture/arm.h
b/include/boost/predef/architecture/arm.h
index 76f9f94..e785304 100644
--- a/include/boost/predef/architecture/arm.h
+++ b/include/boost/predef/architecture/arm.h
@@ -21,6 +21,7 @@ http://www.boost.org/LICENSE_1_0.txt)
[table
[[__predef_symbol__] [__predef_version__]]
+ [[`__aarch64__`] [__predef_detection__]]
[[`__arm__`] [__predef_detection__]]
[[`__arm64`] [__predef_detection__]]
[[`__thumb__`] [__predef_detection__]]
@@ -39,11 +40,11 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \
+#if defined(__aarch64__) || defined(__arm__) || defined(__arm64) ||
defined(__thumb__) || \
defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \
defined(_M_ARM) || defined(_M_ARM64)
# undef BOOST_ARCH_ARM
-# if !defined(BOOST_ARCH_ARM) && defined(__arm64)
+# if !defined(BOOST_ARCH_ARM) && (defined(__arm64) ||
defined(__aarch64__))
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM)
}}}
I'd recommend moving this issue to github so it gets more exposure.
-- Ticket URL: <https://svn.boost.org/trac10/boost/ticket/12946#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-10-04 04:08:47 UTC