2.14.1 release

Allin Cottrell cottrell@wfu.edu
Wed Sep 21 15:22:00 GMT 2011


On Mon, 19 Sep 2011, Mike Frysinger wrote:

> On Monday, September 19, 2011 05:03:01 Andreas Schwab wrote:
>> I'm planning to release 2.14.1 soon.  Anything that should be added?
>
> the changes that have gone into master to fix [1] aren't exactly clear.  have
> those changes been added to the 2.14 branch now ?
> -mike
>
> 1: http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html

Here's another 2.14 dl* question.

When I first installed glibc 2.14 I got segfaults with libdl 
operations in some pretty standard programs, notably 
aplay/libasound (details below). I then applied the patch 
mentioned by Mike F in 
http://sources.redhat.com/ml/libc-alpha/2011-06/msg00010.html 
and that solved the libasound problem.

However, I noticed later that Mike's patch broke something 
else, namely it reinstated a problem raised on the gcc list 
under the title "4.6.0: undefined symbol: 
_ZNSt14error_categoryD2Ev, version GLIBCXX_3.4.15 when dlclose 
C++ libs from C program" -- see the thread starting with
http://gcc.gnu.org/ml/gcc-help/2011-07/msg00099.html .

Since the latter problem turned out to be more serious for me
I have now rebuilt glibc 2.14 from git, without Mike's patch,
and the libasound segfault is back. I don't know whether this 
is a glibc issue or a bug in libasound, but here's what I've 
found libasound is doing on start-up, with regard to the dl* 
functions (all calls to dlopen, dlsym and dlclose):

dlopen: '/usr/lib/libasound.so.2' -> 0xb7822670
dlsym: handle = 0xb7822670, vname = 
'_snd_config_hook_load_dlsym_config_hook_001'
dlclose: 0xb7822670

dlopen: '/usr/lib/libasound.so.2' -> 0xb7822670
dlsym: handle = 0xb7822670, vname = 
'_snd_config_hook_load_dlsym_config_hook_001'

dlopen: '/usr/lib/libasound.so.2' -> 0xb7822670
dlsym: handle = 0xb7822670, vname = 
'_snd_func_concat_dlsym_config_evaluate_001'

dlopen: '/usr/lib/libasound.so.2' -> 0xb7822670
dlsym: handle = 0xb7822670, vname = 
'_snd_func_datadir_dlsym_config_evaluate_001'

dlclose: 0xb7822670
dlclose: 0xb7822670
dlclose: 0xb7822670

dlopen: '/usr/lib/libasound.so.2' -> 0xb7822670
dlsym: handle = 0xb7822670, vname = 
'_snd_config_hook_load_for_all_cards_dlsym_config_hook_001'
Segmentation fault

The repeated dlopen() on the same library followed by repeated 
dlclose() looks suspicious, but I don't know if it is 
technically broken. The libasound code worked OK with glibc 
2.13, but maybe that was just lucky?

FWIW, valgrind says the following:

Invalid read of size 4
   at 0x40092AB: do_lookup_x (dl-lookup.c:98)
   by 0x4009A3E: _dl_lookup_symbol_x (dl-lookup.c:739)
   by 0x4295FEF: do_sym (dl-sym.c:177)
   by 0x4296466: _dl_sym (dl-sym.c:283)
   by 0x432ABE7: ???
Address 0x432a4e8 is 32 bytes inside a block of size 60 free'd
   at 0x4027B88: free (vg_replace_malloc.c:343)
   by 0x4011B85: _dl_scope_free (dl-scope.c:32)
   by 0x4013C4F: _dl_close (dl-close.c:779)
   by 0x4173CB2: dlclose_doit (dlclose.c:37)
   by 0x400E770: _dl_catch_error (dl-error.c:178)
   by 0x417426E: _dlerror_run (dlerror.c:164)
   by 0x4173CE8: dlclose (dlclose.c:48)
   by 0x407E85A: snd_dlclose (dlmisc.c:91)
   by 0x4079A28: snd_config_hooks.constprop.27 (conf.c:3327)
   by 0x407A641: snd_config_update_r (conf.c:3711)
   by 0x407AB57: snd_config_update (conf.c:3742)
   by 0x409B83E: snd_pcm_open (pcm.c:2239)

It would be great to have this clarified.

Allin Cottrell



More information about the Libc-alpha mailing list