rawmidi: symbols: use rawmidi_virt only when available

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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Thomas Petazzoni 2017-08-11 23:24:03 +02:00 committed by Takashi Iwai
parent c01dc3fa48
commit 97da58213a

View file

@ -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)