package/libnpth: fix gnupg2 build with uclibc
Fix the following build failure of gnupg2 raised since bump to version 1.7 in commit3ef4d24192
and https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commitdiff;h=02ce6b2d27f91ed6285e4e92d99c21bcc7823c9b: /home/autobuild/autobuild/instance-2/output-1/host/lib/gcc/armeb-buildroot-linux-uclibcgnueabi/13.2.0/../../../../armeb-buildroot-linux-uclibcgnueabi/bin/ld: /home/autobuild/autobuild/instance-2/output-1/host/bin/../armeb-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libnpth.so: undefined reference to `busy_wait_for' Fixes:3ef4d24192
- http://autobuild.buildroot.org/results/9a27ffde79598a39b4fd55c716978d32d0beb924 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com> (cherry picked from commitad64ddd4f3
) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
896f3342a6
commit
491271b4fe
@ -0,0 +1,51 @@
|
||||
From 01f03a91c9bd63910995aeef412beb3ca6dc9a67 Mon Sep 17 00:00:00 2001
|
||||
From: NIIBE Yutaka <gniibe@fsij.org>
|
||||
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 <gniibe@fsij.org>
|
||||
|
||||
Upstream: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=01f03a91c9bd63910995aeef412beb3ca6dc9a67
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
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
|
||||
|
39
package/libnpth/0003-Fix-previous-commit.patch
Normal file
39
package/libnpth/0003-Fix-previous-commit.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 75c68399ef3bbb5d024f2a60474a7214fa479016 Mon Sep 17 00:00:00 2001
|
||||
From: NIIBE Yutaka <gniibe@fsij.org>
|
||||
Date: Mon, 13 May 2024 11:13:23 +0900
|
||||
Subject: [PATCH] Fix previous commit.
|
||||
|
||||
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
|
||||
|
||||
Upstream: https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=75c68399ef3bbb5d024f2a60474a7214fa479016
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user