alsa-lib/src
John Spencer 11fdac949b snd_dlsym: only do versioning checks if built --with-versioning
a combination of some of the following garbage collecting LD/CFLAGS
-Os -g0 -fdata-sections -ffunction-sections -s -Wl,--gc-sections
-fno-unwind-tables -fno-asynchronous-unwind-tables
causes the symbol versioning marker symbols to be removed from BSS
since they're otherwise unreferenced. this causes dlsym failing to
find them which results in runtime breakage:

$ alsamixer
ALSA lib dlmisc.c:142:(snd_dlsym_verify) unable to verify version for symbol snd_config_hook_load
ALSA lib conf.c:3328:(snd_config_hooks_call) symbol snd_config_hook_load is not defined inside (null)
ALSA lib conf.c:3788:(snd_config_update_r) hooks failed, removing configuration
cannot open mixer: No such device or address

correct DSO:
$ objdump -T libasound.so.2.strip | grep _snd_config_hook_load_dlsym_config_hook_001
001196bc g    DO .bss   00000001 _snd_config_hook_load_dlsym_config_hook_001

incorrect DSO:
$ objdump -T libs/libasound.so.2 | grep _snd_config_hook_load_dlsym_config_hook_001
00000000 g    DO *ABS*  00000001 _snd_config_hook_load_dlsym_config_hook_001

since alsa was built with --without-versioning, doing those versioning
checks at all is unnecessary and harmful and thus now disabled in this case.

Signed-off-by: John Spencer <maillist-alsa@barfooze.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-11-16 09:41:17 +01:00
..
alisp autotools: update style 2014-02-26 08:16:22 +01:00
conf USB-Audio: Add Scarlett 2i4 USB to S/PDIF blacklist 2014-11-03 17:25:40 +01:00
control control: return negative value in case of error 2014-09-23 09:08:09 +02:00
hwdep autotools: update style 2014-02-26 08:16:22 +01:00
mixer mixer: Fix missing hctl handle free in snd_mixer_attach_hctl() 2014-09-23 09:11:27 +02:00
pcm pcm: dmix: Don't ignore SND_TIMER_EVENT_MSTOP 2014-11-06 12:12:02 +01:00
rawmidi rawmidi: close handle h 2014-09-23 09:05:27 +02:00
seq autotools: update style 2014-02-26 08:16:22 +01:00
timer autotools: update style 2014-02-26 08:16:22 +01:00
ucm autotools: update style 2014-02-26 08:16:22 +01:00
async.c Make some static tables and strings constants. 2008-11-21 13:04:41 +01:00
conf.c conf: return negative value in case of error 2014-09-23 09:07:20 +02:00
confmisc.c Allow specifying the max number of cards 2013-05-24 17:21:15 +02:00
dlmisc.c snd_dlsym: only do versioning checks if built --with-versioning 2014-11-16 09:41:17 +01:00
error.c all places: doxygen cleanups 2013-04-08 16:42:24 +02:00
input.c Make all the remaining ops structure constants. 2008-11-21 20:48:33 +01:00
Makefile.am autotools: update style 2014-02-26 08:16:22 +01:00
names.c Remove docs for snd_names_list and snd_names_list_free 2012-01-19 12:35:20 +01:00
output.c fix doc errors 2009-08-04 09:17:20 +02:00
shmarea.c Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-15 10:24:55 +02:00
socket.c socket: missing socket close 2014-09-23 09:06:36 +02:00
userfile.c snd_user_file: fix memory leak 2014-11-03 17:26:00 +01:00
Versions.in Fix wrong exported functions 2008-02-04 14:15:44 +01:00