[alsa-devel] Debian alsa-plugins patches
As previously discussed, I'm posting all Debian patches against alsa-plugins that were pending upstreaming
Thanks, Jordi
From: Steve Langasek steve.langasek@canonical.com
The arcam-av module uses libpthread, so it should pass -pthread explicitly when building in order to avoid leaving any undefined symbols or missing symbol versioning info.
Signed-off-by: Jordi Mallach jordi@debian.org --- arcam-av/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am index 5c7855f..eeb2e90 100644 --- a/arcam-av/Makefile.am +++ b/arcam-av/Makefile.am @@ -3,7 +3,7 @@ asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ -AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined +AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined -pthread
libasound_module_ctl_arcam_av_la_SOURCES = ctl_arcam_av.c arcam_av.c arcam_av.h libasound_module_ctl_arcam_av_la_LIBADD = @ALSA_LIBS@
At Wed, 15 May 2013 19:11:46 +0200, Jordi Mallach wrote:
From: Steve Langasek steve.langasek@canonical.com
The arcam-av module uses libpthread, so it should pass -pthread explicitly when building in order to avoid leaving any undefined symbols or missing symbol versioning info.
Signed-off-by: Jordi Mallach jordi@debian.org
arcam-av/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am index 5c7855f..eeb2e90 100644 --- a/arcam-av/Makefile.am +++ b/arcam-av/Makefile.am @@ -3,7 +3,7 @@ asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ -AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined +AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined -pthread
Is AM_LDFLAGS the right place to add -lXXX? It'd work, but...
Takashi
libasound_module_ctl_arcam_av_la_SOURCES = ctl_arcam_av.c arcam_av.c arcam_av.h libasound_module_ctl_arcam_av_la_LIBADD = @ALSA_LIBS@ -- 1.7.10.4
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Thu, May 16, 2013 at 10:30:26AM +0200, Takashi Iwai wrote:
At Wed, 15 May 2013 19:11:46 +0200, Jordi Mallach wrote:
From: Steve Langasek steve.langasek@canonical.com
The arcam-av module uses libpthread, so it should pass -pthread explicitly when building in order to avoid leaving any undefined symbols or missing symbol versioning info.
Signed-off-by: Jordi Mallach jordi@debian.org
arcam-av/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am index 5c7855f..eeb2e90 100644 --- a/arcam-av/Makefile.am +++ b/arcam-av/Makefile.am @@ -3,7 +3,7 @@ asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ -AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined +AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined -pthread
Is AM_LDFLAGS the right place to add -lXXX?
No - libname_LIBADD should be used for -lXXX, otherwise it will not work with -Wl,--as-needed (which is the default in some distributions). AM_LDFLAGS comes before object files on the linker command line, and all libraries must come after object files when using -Wl,--as-needed.
But note that the option here is not -lpthread, but -pthread - this option is handled by gcc internally, and -lpthread is added at the same place as -lc in the actual linker command line, so -pthread will work even in AM_LDFLAGS (at least while only C is used - libtool is known to mishandle -pthread when linking C++ shared libraries).
Also the current pthread usage in alsa-plugins is inconsistent:
$ find -name Makefile.am -print0 | xargs -r0 grep -i PTHREAD -- ./pulse/Makefile.am:AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE ./pulse/Makefile.am:libasound_module_pcm_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS) ./pulse/Makefile.am:libasound_module_ctl_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS) ./pulse/Makefile.am:libasound_module_conf_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS) ./maemo/Makefile.am:libasound_module_pcm_alsa_dsp_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread ./maemo/Makefile.am:libasound_module_ctl_dsp_ctl_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread
PTHREAD_CFLAGS and PTHREAD_LIBS do not seem to be defined anywhere.
At Thu, 16 May 2013 18:10:06 +0400, Sergey Vlasov wrote:
On Thu, May 16, 2013 at 10:30:26AM +0200, Takashi Iwai wrote:
At Wed, 15 May 2013 19:11:46 +0200, Jordi Mallach wrote:
From: Steve Langasek steve.langasek@canonical.com
The arcam-av module uses libpthread, so it should pass -pthread explicitly when building in order to avoid leaving any undefined symbols or missing symbol versioning info.
Signed-off-by: Jordi Mallach jordi@debian.org
arcam-av/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am index 5c7855f..eeb2e90 100644 --- a/arcam-av/Makefile.am +++ b/arcam-av/Makefile.am @@ -3,7 +3,7 @@ asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ -AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined +AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined -pthread
Is AM_LDFLAGS the right place to add -lXXX?
No - libname_LIBADD should be used for -lXXX, otherwise it will not work with -Wl,--as-needed (which is the default in some distributions). AM_LDFLAGS comes before object files on the linker command line, and all libraries must come after object files when using -Wl,--as-needed.
But note that the option here is not -lpthread, but -pthread - this option is handled by gcc internally, and -lpthread is added at the same place as -lc in the actual linker command line, so -pthread will work even in AM_LDFLAGS (at least while only C is used - libtool is known to mishandle -pthread when linking C++ shared libraries).
Ah, right, I missed that.
Also the current pthread usage in alsa-plugins is inconsistent:
$ find -name Makefile.am -print0 | xargs -r0 grep -i PTHREAD -- ./pulse/Makefile.am:AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE ./pulse/Makefile.am:libasound_module_pcm_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS) ./pulse/Makefile.am:libasound_module_ctl_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS) ./pulse/Makefile.am:libasound_module_conf_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS) ./maemo/Makefile.am:libasound_module_pcm_alsa_dsp_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread ./maemo/Makefile.am:libasound_module_ctl_dsp_ctl_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread
PTHREAD_CFLAGS and PTHREAD_LIBS do not seem to be defined anywhere.
The pthread things are actually set implicitly in alsa-lib pkgconfig or whatever, IIRC...
Takashi
The a52 plugin uses av_free(), but does not check for libavutil availability. Patch configure.in to check for the module, and include libavutil.h.
Signed-off-by: Jordi Mallach jordi@debian.org --- a52/pcm_a52.c | 1 + configure.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c index c40aadc..75c68bd 100644 --- a/a52/pcm_a52.c +++ b/a52/pcm_a52.c @@ -26,6 +26,7 @@ #include <alsa/pcm_external.h> #include <alsa/pcm_plugin.h> #include AVCODEC_HEADER +#include <libavutil/avutil.h>
#if LIBAVCODEC_VERSION_MAJOR >= 53 && LIBAVCODEC_VERSION_MINOR >= 34 #include <libavutil/audioconvert.h> diff --git a/configure.in b/configure.in index 6f345f5..bf8676b 100644 --- a/configure.in +++ b/configure.in @@ -67,7 +67,7 @@ AC_ARG_ENABLE([avcodec], AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)]))
if test "x$enable_avcodec" != "xno"; then - PKG_CHECK_MODULES(AVCODEC, [libavcodec], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no]) + PKG_CHECK_MODULES(AVCODEC, [libavcodec libavutil], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no]) fi
if test "x$HAVE_AVCODEC" = "xno"; then
At Wed, 15 May 2013 19:11:47 +0200, Jordi Mallach wrote:
The a52 plugin uses av_free(), but does not check for libavutil availability. Patch configure.in to check for the module, and include libavutil.h.
Signed-off-by: Jordi Mallach jordi@debian.org
Well, the unconditional inclusion of libavutil/avutil.h is not 100% correct fix, but it should be OK for 99% of systems right now, so I took it as is.
thanks,
Takashi
a52/pcm_a52.c | 1 + configure.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c index c40aadc..75c68bd 100644 --- a/a52/pcm_a52.c +++ b/a52/pcm_a52.c @@ -26,6 +26,7 @@ #include <alsa/pcm_external.h> #include <alsa/pcm_plugin.h> #include AVCODEC_HEADER +#include <libavutil/avutil.h>
#if LIBAVCODEC_VERSION_MAJOR >= 53 && LIBAVCODEC_VERSION_MINOR >= 34 #include <libavutil/audioconvert.h> diff --git a/configure.in b/configure.in index 6f345f5..bf8676b 100644 --- a/configure.in +++ b/configure.in @@ -67,7 +67,7 @@ AC_ARG_ENABLE([avcodec], AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)]))
if test "x$enable_avcodec" != "xno"; then
- PKG_CHECK_MODULES(AVCODEC, [libavcodec], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no])
- PKG_CHECK_MODULES(AVCODEC, [libavcodec libavutil], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no])
fi
if test "x$HAVE_AVCODEC" = "xno"; then
1.7.10.4
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Signed-off-by: Jordi Mallach jordi@debian.org --- configure.in | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/configure.in b/configure.in index bf8676b..abc7013 100644 --- a/configure.in +++ b/configure.in @@ -3,6 +3,8 @@ AC_INIT(oss/pcm_oss.c) AM_INIT_AUTOMAKE(alsa-plugins, 1.0.27) AC_PREFIX_DEFAULT(/usr)
+AM_MAINTAINER_MODE([enable]) + AC_CONFIG_HEADERS(config.h) AC_CONFIG_MACRO_DIR([m4])
At Wed, 15 May 2013 19:11:45 +0200, Jordi Mallach wrote:
As previously discussed, I'm posting all Debian patches against alsa-plugins that were pending upstreaming
Applied patches 2 & 3.
thanks,
Takashi
Thanks, Jordi _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (3)
-
Jordi Mallach
-
Sergey Vlasov
-
Takashi Iwai