[alsa-lib] src/rawmidi/rawmidi_symbols.c: use rawmidi_virt only when available
diff mbox

Message ID 20170811212403.24607-1-thomas.petazzoni@free-electrons.com
State New
Headers show

Commit Message

Thomas Petazzoni Aug. 11, 2017, 9:24 p.m. UTC
src/rawmidi/Makefile.am only brings rawmidi_virt.c into the build when
BUILD_SEQ is defined (i.e when --enable-seq is passed). However,
rawmidi_symbols.c unconditionally refers to _snd_module_rawmidi_virt,
defined in rawmidi_virt.c.

This causes a link failure when BUILD_SEQ is disabled. For example
when linking ffmpeg against alsa-lib:

/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(pcm_dmix.o): In function `snd_pcm_dmix_sync_ptr':
pcm_dmix.c:(.text+0x83c): warning:
/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(rawmidi_symbols.o):(.data+0x4): undefined reference to `_snd_module_rawmidi_virt'
collect2: error: ld returned 1 exit status

To fix this, we make sure that rawmidi_symbols.c only uses
_snd_module_rawmidi_virt when available.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 src/rawmidi/rawmidi_symbols.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Takashi Iwai Aug. 12, 2017, 9:41 p.m. UTC | #1
On Fri, 11 Aug 2017 23:24:03 +0200,
Thomas Petazzoni wrote:
> 
> src/rawmidi/Makefile.am only brings rawmidi_virt.c into the build when
> BUILD_SEQ is defined (i.e when --enable-seq is passed). However,
> rawmidi_symbols.c unconditionally refers to _snd_module_rawmidi_virt,
> defined in rawmidi_virt.c.
> 
> This causes a link failure when BUILD_SEQ is disabled. For example
> when linking ffmpeg against alsa-lib:
> 
> /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(pcm_dmix.o): In function `snd_pcm_dmix_sync_ptr':
> pcm_dmix.c:(.text+0x83c): warning:
> /home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libasound.a(rawmidi_symbols.o):(.data+0x4): undefined reference to `_snd_module_rawmidi_virt'
> collect2: error: ld returned 1 exit status
> 
> To fix this, we make sure that rawmidi_symbols.c only uses
> _snd_module_rawmidi_virt when available.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Applied, thanks.


Takashi

Patch
diff mbox

diff --git a/src/rawmidi/rawmidi_symbols.c b/src/rawmidi/rawmidi_symbols.c
index cdc06d7..6473433 100644
--- a/src/rawmidi/rawmidi_symbols.c
+++ b/src/rawmidi/rawmidi_symbols.c
@@ -21,11 +21,15 @@ 
 #ifndef PIC
 
 extern const char *_snd_module_rawmidi_hw;
+#ifdef BUILD_SEQ
 extern const char *_snd_module_rawmidi_virt;
+#endif
 
 static const char **snd_rawmidi_open_objects[] = {
 	&_snd_module_rawmidi_hw,
+#ifdef BUILD_SEQ
 	&_snd_module_rawmidi_virt
+#endif
 };
 	
 void *snd_rawmidi_open_symbols(void)