diff --git a/package/libnpth/0002-Return-a-run-time-error-if-npth_rwlock_timedrdlock-is-not-supported.patch b/package/libnpth/0002-Return-a-run-time-error-if-npth_rwlock_timedrdlock-is-not-supported.patch new file mode 100644 index 0000000000..0d9b38e4ce --- /dev/null +++ b/package/libnpth/0002-Return-a-run-time-error-if-npth_rwlock_timedrdlock-is-not-supported.patch @@ -0,0 +1,51 @@ +From 01f03a91c9bd63910995aeef412beb3ca6dc9a67 Mon Sep 17 00:00:00 2001 +From: NIIBE Yutaka +Date: Tue, 7 May 2024 13:45:47 +0900 +Subject: [PATCH] Return a run-time error if npth_rwlock_timedrdlock is not + supported. + +* src/npth.c (npth_rwlock_timedrdlock): Return ENOSYS if not +supported. +(npth_rwlock_timedwrlock): Use HAVE_PTHREAD_RWLOCK_TRYWRLOCK. + +-- + +GnuPG-bug-id: 7109 +Fixed-commit: 363c370bd35dd0bb4e5636b2d4f06ea88c658794 +Signed-off-by: NIIBE Yutaka + +Upstream: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=01f03a91c9bd63910995aeef412beb3ca6dc9a67 +Signed-off-by: Fabrice Fontaine +--- + src/npth.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/npth.c b/src/npth.c +index c0ff8da..f02540c 100644 +--- a/src/npth.c ++++ b/src/npth.c +@@ -488,9 +488,11 @@ npth_rwlock_timedrdlock (npth_rwlock_t *rwlock, const struct timespec *abstime) + ENTER(); + #if HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK + err = pthread_rwlock_timedrdlock (rwlock, abstime); +-#else ++#elif HAVE_PTHREAD_RWLOCK_TRYRDLOCK + err = busy_wait_for ((trylock_func_t) pthread_rwlock_tryrdlock, rwlock, + abstime); ++#else ++ err = ENOSYS; + #endif + LEAVE(); + return err; +@@ -533,7 +535,7 @@ npth_rwlock_timedwrlock (npth_rwlock_t *rwlock, const struct timespec *abstime) + ENTER(); + #if HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK + err = pthread_rwlock_timedwrlock (rwlock, abstime); +-#elif HAVE_PTHREAD_RWLOCK_TRYRDLOCK ++#elif HAVE_PTHREAD_RWLOCK_TRYWRLOCK + err = busy_wait_for ((trylock_func_t) pthread_rwlock_trywrlock, rwlock, + abstime); + #else +-- +2.30.2 + diff --git a/package/libnpth/0003-Fix-previous-commit.patch b/package/libnpth/0003-Fix-previous-commit.patch new file mode 100644 index 0000000000..5f3ce06bf6 --- /dev/null +++ b/package/libnpth/0003-Fix-previous-commit.patch @@ -0,0 +1,39 @@ +From 75c68399ef3bbb5d024f2a60474a7214fa479016 Mon Sep 17 00:00:00 2001 +From: NIIBE Yutaka +Date: Mon, 13 May 2024 11:13:23 +0900 +Subject: [PATCH] Fix previous commit. + +Signed-off-by: NIIBE Yutaka + +Upstream: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=75c68399ef3bbb5d024f2a60474a7214fa479016 +Signed-off-by: Fabrice Fontaine +--- + src/npth.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/npth.c b/src/npth.c +index f02540c..8dced17 100644 +--- a/src/npth.c ++++ b/src/npth.c +@@ -178,6 +178,18 @@ static int initialized_or_any_threads; + typedef int (*trylock_func_t) (void *); + + #ifndef HAVE_PTHREAD_MUTEX_TIMEDLOCK ++#define REQUIRE_THE_BUSY_WAIT_FOR_IMPLEMENTATION 1 ++#endif ++ ++#if !HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK && HAVE_PTHREAD_RWLOCK_TRYRDLOCK ++#define REQUIRE_THE_BUSY_WAIT_FOR_IMPLEMENTATION 1 ++#endif ++ ++#if !HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK && HAVE_PTHREAD_RWLOCK_TRYWRLOCK ++#define REQUIRE_THE_BUSY_WAIT_FOR_IMPLEMENTATION 1 ++#endif ++ ++#if REQUIRE_THE_BUSY_WAIT_FOR_IMPLEMENTATION + static int + busy_wait_for (trylock_func_t trylock, void *lock, + const struct timespec *abstime) +-- +2.30.2 +