aboutsummaryrefslogtreecommitdiffstats
path: root/main/exiv2/0001-Amend-fix-for-9-to-apply-to-other-Unix-systems.patch
blob: 86412532d0b92cd9de8a90e7e8fde09f9623c605 (plain)
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
From d775683f579543c35463ab2a8d9425da10d2f016 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Wed, 4 Oct 2017 00:15:30 -0500
Subject: [PATCH] Amend fix for #9 to apply to other Unix systems

At least the musl libc on Linux has the same issue as Mac OS X: the
PTHREAD_RECURSIVE_* static initialiser does not exist.  This is a
documented and purposeful omission:

http://www.openwall.com/lists/musl/2017/02/20/3

This commit uses similar logic to the Apple test on other Unixes.
---
 src/actions.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/actions.cpp b/src/actions.cpp
index fe14de4..aa15ec7 100644
--- a/src/actions.cpp
+++ b/src/actions.cpp
@@ -2051,7 +2051,11 @@ namespace {
     static pthread_mutex_t cs =  PTHREAD_MUTEX_INITIALIZER;
   #endif
  #else
-  static pthread_mutex_t cs =  PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+  #if defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
+    static pthread_mutex_t cs =  PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+   #else
+    static pthread_mutex_t cs =  PTHREAD_MUTEX_INITIALIZER;
+  #endif
  #endif
 #endif
 
-- 
2.10.0