All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH alsa-lib 1/2] build: Define __USE_UNIX98 for old glibc
@ 2017-05-16 14:28 Takashi Iwai
  2017-05-16 14:28 ` [PATCH alsa-lib 2/2] conf: Check the availability of PTHREAD_MUTEX_RECURSIVE Takashi Iwai
  0 siblings, 1 reply; 2+ messages in thread
From: Takashi Iwai @ 2017-05-16 14:28 UTC (permalink / raw)
  To: alsa-devel

Otherwise PTHREAD_MUTEX_RECURSIVE isn't defined and we get an error
with old glibc.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 src/pcm/pcm_local.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h
index 32e6dcdf6fcd..e4f652187c49 100644
--- a/src/pcm/pcm_local.h
+++ b/src/pcm/pcm_local.h
@@ -35,6 +35,7 @@
 #include "local.h"
 
 #ifdef THREAD_SAFE_API
+#define __USE_UNIX98 1	/* for old glibc */
 #include <pthread.h>
 #endif
 
-- 
2.13.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH alsa-lib 2/2] conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
  2017-05-16 14:28 [PATCH alsa-lib 1/2] build: Define __USE_UNIX98 for old glibc Takashi Iwai
@ 2017-05-16 14:28 ` Takashi Iwai
  0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2017-05-16 14:28 UTC (permalink / raw)
  To: alsa-devel

Check the availability of PTHREAD_MUTEX_RECURSIVE in configure script
and use it only when possible.  A fairly old version of glibc still
seems working, but just to be sure.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 configure.ac  | 9 +++++++++
 src/conf.c    | 2 ++
 src/pcm/pcm.c | 2 ++
 3 files changed, 13 insertions(+)

diff --git a/configure.ac b/configure.ac
index ec254762bed6..a17f2c4aef5c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -266,6 +266,15 @@ else
   AC_MSG_RESULT(no)
 fi
 
+dnl Check for pthread
+if test "$HAVE_LIBPTHREAD" = "yes"; then
+  AC_CHECK_DECL(PTHREAD_MUTEX_RECURSIVE,
+    AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE, [],
+      [Define if your pthreads implementation have PTHREAD_MUTEX_RECURSIVE]),
+    ,
+    [#include <pthread.h>])
+fi
+
 dnl Check for __thread
 AC_MSG_CHECKING([for __thread])
 AC_LINK_IFELSE([AC_LANG_PROGRAM([#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && ((__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || (__GNUC__ == 4 && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ < 2))
diff --git a/src/conf.c b/src/conf.c
index 2b52b44e9144..9a887433a4fe 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -490,7 +490,9 @@ static void snd_config_init_mutex(void)
 	pthread_mutexattr_t attr;
 
 	pthread_mutexattr_init(&attr);
+#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE
 	pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+#endif
 	pthread_mutex_init(&snd_config_update_mutex, &attr);
 	pthread_mutexattr_destroy(&attr);
 }
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
index 8a7a5950de3c..200b10c2c09c 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
@@ -2600,7 +2600,9 @@ int snd_pcm_new(snd_pcm_t **pcmp, snd_pcm_type_t type, const char *name,
 	INIT_LIST_HEAD(&pcm->async_handlers);
 #ifdef THREAD_SAFE_API
 	pthread_mutexattr_init(&attr);
+#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE
 	pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+#endif
 	pthread_mutex_init(&pcm->lock, &attr);
 	/* use locking as default;
 	 * each plugin may suppress this in its open call
-- 
2.13.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-05-16 14:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-16 14:28 [PATCH alsa-lib 1/2] build: Define __USE_UNIX98 for old glibc Takashi Iwai
2017-05-16 14:28 ` [PATCH alsa-lib 2/2] conf: Check the availability of PTHREAD_MUTEX_RECURSIVE Takashi Iwai

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.