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