The attached patch fixes the second problem reported in https://cygwin.com/ml/cygwin/2018-05/msg00316.html, though I'm not sure it's the right fix.

Ken
From 4940baac08cd9339d771d9db90a880c61610ae4c Mon Sep 17 00:00:00 2001
From: Ken Brown <kbr...@cornell.edu>
Date: Wed, 30 May 2018 16:19:01 -0400
Subject: [PATCH] Declare the pthread_rwlock_* functions if __cplusplus >=
 201402L

Some of these functions are used in the <shared_mutex> C++ header.
---
 winsup/cygwin/include/pthread.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/winsup/cygwin/include/pthread.h b/winsup/cygwin/include/pthread.h
index 3dfc2bc80..fed616532 100644
--- a/winsup/cygwin/include/pthread.h
+++ b/winsup/cygwin/include/pthread.h
@@ -187,7 +187,7 @@ int pthread_spin_unlock (pthread_spinlock_t *);
 #endif
 
 /* RW Locks */
-#if __XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112
+#if __XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112 || __cplusplus >= 201402L
 int pthread_rwlock_destroy (pthread_rwlock_t *rwlock);
 int pthread_rwlock_init (pthread_rwlock_t *rwlock, const pthread_rwlockattr_t 
*attr);
 int pthread_rwlock_rdlock (pthread_rwlock_t *rwlock);
-- 
2.17.0

Reply via email to