* [PATCH 0/3] More latest glibc/gcc build fixes
@ 2021-10-16 18:31 Jan Kiszka
2021-10-16 18:31 ` [PATCH 1/3] testsuite/latency: Use corresponding pclose for popen Jan Kiszka
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jan Kiszka @ 2021-10-16 18:31 UTC (permalink / raw)
To: xenomai
Found while test-building against ALT linux.
Jan
CC: Jan Kiszka <jan.kiszka@siemens.com>
Jan Kiszka (3):
testsuite/latency: Use corresponding pclose for popen
lib/boilerplate: Convert pthread_mutexattr_setrobust_np stub into
inline function
lib: Switch to pthread_mutexattr_setrobust
configure.ac | 1 +
include/boilerplate/libc.h | 14 +++++++++++---
lib/alchemy/mutex.c | 4 ++--
lib/vxworks/semLib.c | 4 ++--
testsuite/latency/latency.c | 2 +-
5 files changed, 17 insertions(+), 8 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] testsuite/latency: Use corresponding pclose for popen
2021-10-16 18:31 [PATCH 0/3] More latest glibc/gcc build fixes Jan Kiszka
@ 2021-10-16 18:31 ` Jan Kiszka
2021-10-16 18:31 ` [PATCH 2/3] lib/boilerplate: Convert pthread_mutexattr_setrobust_np stub into inline function Jan Kiszka
2021-10-16 18:31 ` [PATCH 3/3] lib: Switch to pthread_mutexattr_setrobust Jan Kiszka
2 siblings, 0 replies; 4+ messages in thread
From: Jan Kiszka @ 2021-10-16 18:31 UTC (permalink / raw)
To: xenomai
From: Jan Kiszka <jan.kiszka@siemens.com>
Was found by latest gcc-11 and -Werror=mismatched-dealloc.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
testsuite/latency/latency.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testsuite/latency/latency.c b/testsuite/latency/latency.c
index a0e6f48260..6cd3a28b44 100644
--- a/testsuite/latency/latency.c
+++ b/testsuite/latency/latency.c
@@ -412,7 +412,7 @@ static void dump_histo_gnuplot(int32_t *histogram, time_t duration)
fputs(buf, ofp);
}
- fclose(ifp);
+ pclose(ifp);
dump_data:
for (n = 0; n < histogram_size && histogram[n] == 0; n++)
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] lib/boilerplate: Convert pthread_mutexattr_setrobust_np stub into inline function
2021-10-16 18:31 [PATCH 0/3] More latest glibc/gcc build fixes Jan Kiszka
2021-10-16 18:31 ` [PATCH 1/3] testsuite/latency: Use corresponding pclose for popen Jan Kiszka
@ 2021-10-16 18:31 ` Jan Kiszka
2021-10-16 18:31 ` [PATCH 3/3] lib: Switch to pthread_mutexattr_setrobust Jan Kiszka
2 siblings, 0 replies; 4+ messages in thread
From: Jan Kiszka @ 2021-10-16 18:31 UTC (permalink / raw)
To: xenomai
From: Jan Kiszka <jan.kiszka@siemens.com>
Recent glibc (at leasst 2.34) triggers
CC libposix_fork_a-posix-fork.o
In file included from posix-fork.c:11:
../../../include/boilerplate/libc.h:248:10: error: expected identifier or '(' before '{' token
248 | ({ ENOSYS; })
| ^
So switch to a static inline, like for all the other stubs.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
include/boilerplate/libc.h | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/boilerplate/libc.h b/include/boilerplate/libc.h
index 75e2d1da43..41b2eb91bb 100644
--- a/include/boilerplate/libc.h
+++ b/include/boilerplate/libc.h
@@ -244,8 +244,12 @@ __weak int shm_unlink(const char *name)
#endif /* !HAVE_SHM_UNLINK */
#ifndef HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP
-#define pthread_mutexattr_setrobust_np(__attr, __robust) \
- ({ ENOSYS; })
+static inline
+int pthread_mutexattr_setrobust_np(const pthread_mutexattr_t *attr,
+ int *robustness)
+{
+ return ENOSYS;
+}
#endif /* !HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP */
#if !defined(HAVE_PTHREAD_SETNAME_NP) && defined(CONFIG_XENO_MERCURY)
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] lib: Switch to pthread_mutexattr_setrobust
2021-10-16 18:31 [PATCH 0/3] More latest glibc/gcc build fixes Jan Kiszka
2021-10-16 18:31 ` [PATCH 1/3] testsuite/latency: Use corresponding pclose for popen Jan Kiszka
2021-10-16 18:31 ` [PATCH 2/3] lib/boilerplate: Convert pthread_mutexattr_setrobust_np stub into inline function Jan Kiszka
@ 2021-10-16 18:31 ` Jan Kiszka
2 siblings, 0 replies; 4+ messages in thread
From: Jan Kiszka @ 2021-10-16 18:31 UTC (permalink / raw)
To: xenomai
From: Jan Kiszka <jan.kiszka@siemens.com>
With recent glibc (at least 2.34), autoconf fails to detect
pthread_mutexattr_setrobust_np. But that is long deprecated anyway. So
switch to pthread_mutexattr_setrobust and only fall back to _np when
needed.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
configure.ac | 1 +
include/boilerplate/libc.h | 10 +++++++---
lib/alchemy/mutex.c | 4 ++--
lib/vxworks/semLib.c | 4 ++--
4 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index 480a94768d..d39443a35e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -542,6 +542,7 @@ AC_CHECK_FUNCS([pthread_mutexattr_setprotocol \
pthread_mutexattr_getprotocol \
pthread_mutexattr_getprioceiling \
pthread_mutexattr_setprioceiling \
+ pthread_mutexattr_setrobust \
pthread_mutexattr_setrobust_np \
pthread_mutex_getprioceiling \
pthread_mutex_setprioceiling \
diff --git a/include/boilerplate/libc.h b/include/boilerplate/libc.h
index 41b2eb91bb..797e377a2e 100644
--- a/include/boilerplate/libc.h
+++ b/include/boilerplate/libc.h
@@ -243,14 +243,18 @@ __weak int shm_unlink(const char *name)
}
#endif /* !HAVE_SHM_UNLINK */
-#ifndef HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP
+#ifndef HAVE_PTHREAD_MUTEXATTR_SETROBUST
+#ifdef HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP
+#define pthread_mutexattr_setrobust pthread_mutexattr_setrobust_np
+#else
static inline
-int pthread_mutexattr_setrobust_np(const pthread_mutexattr_t *attr,
- int *robustness)
+int pthread_mutexattr_setrobust(const pthread_mutexattr_t *attr,
+ int *robustness)
{
return ENOSYS;
}
#endif /* !HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP */
+#endif /* !HAVE_PTHREAD_MUTEXATTR_SETROBUST */
#if !defined(HAVE_PTHREAD_SETNAME_NP) && defined(CONFIG_XENO_MERCURY)
static inline
diff --git a/lib/alchemy/mutex.c b/lib/alchemy/mutex.c
index 09eb1364ef..f893385864 100644
--- a/lib/alchemy/mutex.c
+++ b/lib/alchemy/mutex.c
@@ -131,8 +131,8 @@ int rt_mutex_create(RT_MUTEX *mutex, const char *name)
pthread_mutexattr_setprotocol(&mattr, PTHREAD_PRIO_INHERIT);
pthread_mutexattr_setpshared(&mattr, mutex_scope_attribute);
pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE);
- /* pthread_mutexattr_setrobust_np() might not be implemented. */
- pthread_mutexattr_setrobust_np(&mattr, PTHREAD_MUTEX_ROBUST_NP);
+ /* pthread_mutexattr_setrobust() might not be implemented. */
+ pthread_mutexattr_setrobust(&mattr, PTHREAD_MUTEX_ROBUST_NP);
ret = __RT(pthread_mutex_init(&mcb->lock, &mattr));
if (ret) {
xnfree(mcb);
diff --git a/lib/vxworks/semLib.c b/lib/vxworks/semLib.c
index acce160ee1..180ed20005 100644
--- a/lib/vxworks/semLib.c
+++ b/lib/vxworks/semLib.c
@@ -411,8 +411,8 @@ SEM_ID semMCreate(int options)
*/
pthread_mutexattr_init(&mattr);
pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE);
- /* pthread_mutexattr_setrobust_np() might not be implemented. */
- pthread_mutexattr_setrobust_np(&mattr, PTHREAD_MUTEX_ROBUST_NP);
+ /* pthread_mutexattr_setrobust() might not be implemented. */
+ pthread_mutexattr_setrobust(&mattr, PTHREAD_MUTEX_ROBUST_NP);
if (options & SEM_INVERSION_SAFE)
pthread_mutexattr_setprotocol(&mattr, PTHREAD_PRIO_INHERIT);
pthread_mutexattr_setpshared(&mattr, mutex_scope_attribute);
--
2.31.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-10-16 18:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-16 18:31 [PATCH 0/3] More latest glibc/gcc build fixes Jan Kiszka
2021-10-16 18:31 ` [PATCH 1/3] testsuite/latency: Use corresponding pclose for popen Jan Kiszka
2021-10-16 18:31 ` [PATCH 2/3] lib/boilerplate: Convert pthread_mutexattr_setrobust_np stub into inline function Jan Kiszka
2021-10-16 18:31 ` [PATCH 3/3] lib: Switch to pthread_mutexattr_setrobust Jan Kiszka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.