|
|
- Add a patch from the Alpine Linux project to fix a musl build issue with gcc 5:
-
- Problem has been reported upstream and closed with WONTFIX:
- http://bugs.musicpd.org/view.php?id=4387
- http://bugs.musicpd.org/view.php?id=4110
-
- however...
-
- POSIX does not permit using PTHREAD_COND_INITIALIZER except for static
- initialization, and certainly does not permit using it as a value
-
- POSIX does not specify the type of the object (it's opaque) so if
- there are any types for which their code would be invalid C++, then their
- code is invalid
-
- Volatile in the type is necessary. without that, LTO can break the code.
-
- --- a/src/notify.hxx
- +++ b/src/notify.hxx
- @@ -28,7 +28,7 @@ struct notify {
- Cond cond;
- bool pending;
-
- -#if !defined(WIN32) && !defined(__NetBSD__) && !defined(__BIONIC__)
- +#if defined(__GLIBC__)
- constexpr
- #endif
- notify():pending(false) {}
- --- a/src/thread/PosixCond.hxx
- +++ b/src/thread/PosixCond.hxx
- @@ -41,7 +41,7 @@ class PosixCond {
- pthread_cond_t cond;
-
- public:
- -#if defined(__NetBSD__) || defined(__BIONIC__)
- +#if !defined(__GLIBC__)
- /* NetBSD's PTHREAD_COND_INITIALIZER is not compatible with
- "constexpr" */
- PosixCond() {
- --- a/src/thread/PosixMutex.hxx
- +++ b/src/thread/PosixMutex.hxx
- @@ -41,7 +41,7 @@ class PosixMutex {
- pthread_mutex_t mutex;
-
- public:
- -#if defined(__NetBSD__) || defined(__BIONIC__)
- +#if !defined(__GLIBC__)
- /* NetBSD's PTHREAD_MUTEX_INITIALIZER is not compatible with
- "constexpr" */
- PosixMutex() {
|