aboutsummaryrefslogtreecommitdiffstats log msg author committer range
path: root/main/mpd/musl-gcc5-fixes.patch
blob: e80c088a7b88758aca6d1400bf9f7e0bafa104d4 (plain) (blame)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 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 also 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 also, volatile in the type is necessary. without that, LTO can break the code. --- ./src/notify.hxx.orig +++ ./src/notify.hxx @@ -28,7 +28,7 @@ Cond cond; bool pending; -#if !defined(WIN32) && !defined(__NetBSD__) && !defined(__BIONIC__) +#if defined(__GLIBC__) constexpr #endif notify():pending(false) {} --- ./src/thread/PosixCond.hxx.orig +++ ./src/thread/PosixCond.hxx @@ -41,7 +41,7 @@ pthread_cond_t cond; public: -#if defined(__NetBSD__) || defined(__BIONIC__) +#if !defined(__GLIBC__) /* NetBSD's PTHREAD_COND_INITIALIZER is not compatible with "constexpr" */ PosixCond() { --- ./src/thread/PosixMutex.hxx.orig +++ ./src/thread/PosixMutex.hxx @@ -41,7 +41,7 @@ pthread_mutex_t mutex; public: -#if defined(__NetBSD__) || defined(__BIONIC__) +#if !defined(__GLIBC__) /* NetBSD's PTHREAD_MUTEX_INITIALIZER is not compatible with "constexpr" */ PosixMutex() {