From: Takashi Iwai Subject: Re: [PATCH] snd_dlsym: only do versioning checks if built --with-versioning Date: Sun, 16 Nov 2014 09:45:12 +0100 Message-ID: References: <54674D5A.3010500@barfooze.de> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 83B61260646 for ; Sun, 16 Nov 2014 09:45:12 +0100 (CET) In-Reply-To: <54674D5A.3010500@barfooze.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: John Spencer Cc: alsa-devel , sabotage@lists.openwall.com List-Id: alsa-devel@alsa-project.org At Sat, 15 Nov 2014 13:55:54 +0100, John Spencer wrote: > > From 291553a0132936611d48f41e924601dff8941537 Mon Sep 17 00:00:00 2001 > From: John Spencer > 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 Thanks, applied. Takashi