[Buildroot] [PATCH 2/3] alsa-lib: require thread support

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Sep 18 17:21:37 UTC 2012


Some parts of alsa-lib correctly use threads only when available, but
some other parts, especially certain PCM plugins, unconditionally
require threads. While it would certainly be possible to fix alsa-lib
to only use threads when available, it probably doesn't make much
sense, since on an embedded system that has audio, we are probably
powerful enough to enable thread support in the C library.

Fixes:

  http://autobuild.buildroot.org/results/e14469be7f6171f4c8c0c09c8e32943819f7938b/build-end.log

Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
---
 package/alsa-lib/Config.in              |    8 ++++++++
 package/bluez_utils/Config.in           |    2 +-
 package/multimedia/alsa-utils/Config.in |    5 +++--
 package/multimedia/mpd/Config.in        |    1 +
 package/portaudio/Config.in             |    1 +
 package/qt/Config.in                    |    1 +
 6 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/package/alsa-lib/Config.in b/package/alsa-lib/Config.in
index 8123b5f..ca063d8 100644
--- a/package/alsa-lib/Config.in
+++ b/package/alsa-lib/Config.in
@@ -4,12 +4,20 @@ config BR2_PACKAGE_ALSA_LIB
 	# https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4913
 	# is fixed
 	select BR2_PACKAGE_ALSA_LIB_PCM
+	# Even though some parts of alsa-lib use threads only when
+	# available, some PCM plugins use them unconditionally. Since
+	# the usage of alsa-lib on no-thread systems is pretty
+	# unlikely, just require thread support globally for alsa-lib.
+	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
 	  functionality to the Linux operating system.
 
 	  http://www.alsa-project.org/
 
+comment "alsa-lib needs threads support in toolchain"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
 if BR2_PACKAGE_ALSA_LIB
 
 config BR2_PACKAGE_ALSA_LIB_PYTHON
diff --git a/package/bluez_utils/Config.in b/package/bluez_utils/Config.in
index d63284d..9836b21 100644
--- a/package/bluez_utils/Config.in
+++ b/package/bluez_utils/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_BLUEZ_UTILS
 	bool "bluez-utils"
 	depends on BR2_USE_WCHAR # libglib2
-	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
+	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib
 	select BR2_PACKAGE_DBUS
 	select BR2_PACKAGE_LIBGLIB2
 	help
diff --git a/package/multimedia/alsa-utils/Config.in b/package/multimedia/alsa-utils/Config.in
index c65e33f..4bc1204 100644
--- a/package/multimedia/alsa-utils/Config.in
+++ b/package/multimedia/alsa-utils/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_ALSA_UTILS
 	bool "alsa-utils"
 	depends on BR2_LARGEFILE
+	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
 	select BR2_PACKAGE_ALSA_LIB
 	help
 	  This package contains the command line utilities for the ALSA
@@ -8,8 +9,8 @@ config BR2_PACKAGE_ALSA_UTILS
 
 	  http://www.alsa-project.org/
 
-comment "alsa-utils requires a toolchain with LARGEFILE support"
-	depends on !BR2_LARGEFILE
+comment "alsa-utils requires a toolchain with LARGEFILE and threads support"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
 
 if BR2_PACKAGE_ALSA_UTILS
 menu "ALSA utils selection"
diff --git a/package/multimedia/mpd/Config.in b/package/multimedia/mpd/Config.in
index c7c0cd7..5d08182 100644
--- a/package/multimedia/mpd/Config.in
+++ b/package/multimedia/mpd/Config.in
@@ -21,6 +21,7 @@ config BR2_PACKAGE_MPD_ALSA
 	select BR2_PACKAGE_ALSA_LIB
 	select BR2_PACKAGE_ALSA_LIB_PCM
 	select BR2_PACKAGE_ALSA_LIB_MIXER
+	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
 	help
 	  Enable alsa output support.
 
diff --git a/package/portaudio/Config.in b/package/portaudio/Config.in
index f91acc0..df884a7 100644
--- a/package/portaudio/Config.in
+++ b/package/portaudio/Config.in
@@ -11,6 +11,7 @@ if BR2_PACKAGE_PORTAUDIO
 config BR2_PACKAGE_PORTAUDIO_ALSA
 	bool "alsa support"
 	select BR2_PACKAGE_ALSA_LIB
+	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
 	default y
 	help
 	  Compile with ALSA support.
diff --git a/package/qt/Config.in b/package/qt/Config.in
index b75f224..b99bf4c 100644
--- a/package/qt/Config.in
+++ b/package/qt/Config.in
@@ -315,6 +315,7 @@ config BR2_PACKAGE_QT_AUDIO_BACKEND
 	bool "QtMultimedia Audio backend"
 	depends on BR2_PACKAGE_QT_MULTIMEDIA
 	select BR2_PACKAGE_ALSA_LIB
+	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
 	help
 	  Build the ALSA audio backend into QtMultimedia
 
-- 
1.7.9.5




More information about the buildroot mailing list