|
Message-ID: <20160630133827.GA15995@brightrain.aerifal.cx> Date: Thu, 30 Jun 2016 09:38:28 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Issues when building libcxx libcxxabi with MUSL On Thu, Jun 30, 2016 at 02:50:14PM +0200, Julien Ramseier wrote: > > > Le 22 juin 2016 à 21:41, Rich Felker <dalias@...c.org> a écrit : > > > > On Wed, Jun 22, 2016 at 09:38:17PM +0200, Julien Ramseier wrote: > >> Hi Zhao, > >> > >> Not sure how you did build llvm-libcxx, but the only issue I encountered myself is > >> the use of PTHREAD_MUTEX_INITIALIZER in libcxx include/__mutex_base. > >> musl uses volatile types in its pthread_mutex_t struct and C++11 does not allow them > >> with constexpr member initializers. This rule has been relaxed in C++14. > > > > Note that the code using them is still formally/conceptually buggy. > > POSIX does not permit using these initializers as values. They can > > only be used as initializers for objects with static storage duration. > > A "mutex value" makes no sense; mutexes are objects not values. > > Actually the latest POSIX spec allows it. > See http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_init.html <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_init.html> Could you cite the specific text you're looking at? The requirement of static storage was removed by http://austingroupbugs.net/view.php?id=70 but I see nothing allowing the use of mutex values or assigning one to another, which as I understand it is what the offending libc++ code is doing. > A workaround for the C++11 constexpr issue should land soon in libcxx trunk. > http://reviews.llvm.org/D21637 <http://reviews.llvm.org/D21637> I'm not very good at reading modern C++, but that looks like an actual fix, not a workaround. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.