This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 2.14.1 release


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]