Re: [Boost-bugs] [Boost C++ Libraries] #12946: Definition of BOOST_ARCH_ARM does not check __aarch64__

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