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.