|
|
@ -0,0 +1,50 @@ |
|
|
|
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() { |