Re: [Boost-bugs] [Boost C++ Libraries] #9842: long long not lockfree on i686 compiled with clang

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9842: long long not lockfree on i686 compiled with clang
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-04-07 07:47:44


#9842: long long not lockfree on i686 compiled with clang
--------------------------------------+--------------------------
  Reporter: gjasny@… | Owner: timblechmann
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: atomic
   Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords:
--------------------------------------+--------------------------
Changes (by andysem):

 * cc: Andrey.Semashev@… (added)

Comment:

 I believe there is a bug in clang because all Core 2 generation CPUs
 support cmpxchg8b instruction or 64-bit cmpxchg in 64-bit mode. The
 compiler should be defining the !__GCC_ATOMIC_LLONG_LOCK_FREE macro to 2.
 This is what gcc does. Please, report it to clang team.

 As for Boost.Atomic behavior, it currently does not support "possibly
 hardware-supported" atomics because in some cases this results in linking
 errors.

 In this ticket we could probably work around the clang bug, if it also
 defines the target CPU macros correctly. If it doesn't there's really
 nothing we can do. Please, attach a full output of the ''clang
 -march=core2 -dM -E - -m32 < /dev/null'' command to this ticket.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9842#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-02-16 18:50:15 UTC