Could you cite the specific text you're looking at? The requirement ofstatic storage was removed byhttp://austingroupbugs.net/view.php?id=70 but I see nothing allowingthe use of mutex values or assigning one to another, which as Iunderstand it is what the offending libc++ code is doing.
I'm not sure what you mean by "mutex value".
The libcxx mutex class only uses the PTHREAD_MUTEX_INITIALIZER
macro as an initializer for its underlying pthread_mutex member.
The part of the spec I was referring to is the use of
PTHREAD_MUTEX_INITIALIZER to initialize non-static mutexes,
which is what libcxx did and still do with my patch, but in a different
way to avoid the constexpr issue due to the nested volatile types.