[alsa-devel] [PATCH] snd_dlsym: only do versioning checks if built --with-versioning
John Spencer
maillist-alsa at barfooze.de
Sat Nov 15 13:55:54 CET 2014
From 291553a0132936611d48f41e924601dff8941537 Mon Sep 17 00:00:00 2001
From: John Spencer <maillist-alsa at barfooze.de>
Date: Sat, 15 Nov 2014 13:41:00 +0100
Subject: [PATCH] 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 at barfooze.de>
---
src/dlmisc.c | 2 ++
1 file changed, 2 insertions(+)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-snd_dlsym-only-do-versioning-checks-if-built-with-ve.patch
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20141115/f3284ec3/attachment.ksh>
More information about the Alsa-devel
mailing list