Subject: Re: [boost] [config] [atomic] Problem with placement of BOOST_ALIGNMENT - requesting opinions/suggestions
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2017-02-27 23:10:21


On 02/28/17 00:39, Groke, Paul via Boost wrote:
> Andrey Semashev wrote:
>> This makes the compiler incompatible with the current semantics of
>> BOOST_ALIGNMENT. You probably need to revise the changes made in the
>> recent Boost.Config PR[1] regarding BOOST_ALIGNMENT. Please, prepare an
>> updating PR for Boost.Config.
>
> Yes, I will. Should I undo the "make BOOST_ALIGNMENT definable in the
> compiler header" part (the "escape") as well, or just the definition of
> BOOST_ALIGNMENT in the header for the z/OS compiler?

Thanks. I'm ok if the escape is left as is now.

> BTW: Does anyone know of any other compilers that don't support
> BOOST_ALIGNMENT-style specifications for variables, but do support
> BOOST_ALIGNMENT-style alignment specifications for types?

Umm, no, I can't remember any other compilers with such problems. But
then I don't work with many compilers besides the "usual" ones.

> Thanks! IMO that's the best immediate solution. The z compiler indeed
> has an intrinsic for the z/Arch's "double-width CAS" instruction, which
> would allow 128 bit atomics in 64 bit mode. But we don't need it.
> And since there are plenty platforms that don't support double-width CAS
> in 64 bit mode, not having it on z either should be acceptable.

Ok, that's a good starting point. However, I think DCAS is used in
Boost.Lockfree, and maybe somewhere else, so you may want to revisit
this solution later.