[ https://issues.apache.org/jira/browse/STDCXX-1072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13465554#comment-13465554 ]
Liviu Nicoara commented on STDCXX-1072: --------------------------------------- The kernel patch changed the alignment of the userland mutex objects from a machine word to a double-word boundary. No changes are required of the users who use such objects in their programs unless users create mutex objects in buffers which may not be aligned on a proper boundary. E.g., the following are safe: {noformat} mutex_t lock; struct S { char misalign; mutex_t lock; }; {noformat} whereas the following is not: {noformat} union { void* align; char buf [sizeof mutex_t]; } u; new (&u) mutex_t; {noformat} because the alignment requirements for void pointer are less strict than for mutex_t. A few places in the library use the latter for all sorts of static objects (mostly local statics). > [Oracle Solaris/SPARCV8] stricter mutex alignment requirements > -------------------------------------------------------------- > > Key: STDCXX-1072 > URL: https://issues.apache.org/jira/browse/STDCXX-1072 > Project: C++ Standard Library > Issue Type: Bug > Components: Thread Safety > Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1 > Environment: Oracle Solaris on SPARC V8 (or V9 emulation?) hardware. > Reporter: Liviu Nicoara > Labels: SPARC, Solaris, V8, alignment, mutex > Fix For: 4.2.x, 4.3.x, 5.0.0 > > Original Estimate: 4h > Remaining Estimate: 4h > > The issue has been reported in STDCXX-1066. The originator was apparently an > improvement (as a response to CR 6296770: http://tinyurl.com/8ohjsgl) shipped > with KU 137111-01 (http://tinyurl.com/ceet6ec) which requires stricter > alignment than the machine word for userland mutexes. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira