[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#578273: libc6-dev: Please provide thread-safe dlerror() replacement



Package: libc6-dev
Version: 2.10.2-6
Severity: wishlist
Tags: upstream


	Hello,

The current glibc implementation of dlerror() calls strerror(). The
current implementation of strerror() is not thread-safe. While this
is allowed by POSIX, this is quite inconvenient for thread-safe programs
or library using dlopen() and dlsym().

With dlsym(), checking dlerror() is in fact the "recommended" way to
detect errors. In theory anyway - NULL can be a correct succesful return
value for dlsym().

I would not hold my breath for POSIX to resolve this issue, so can glibc
please provide a proprietary replacement? We need this to fix the libvlc
package (currently "wrongly" calling dlerror()). It could either write
the error message to a provided buffer à la strerror_r() or allocate it
on the heap - whatever.

Best regards,

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (100, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32.9 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libc6-dev depends on:
ii  libc-dev-bin                  2.10.2-6   Embedded GNU C Library: Developmen
ii  libc6                         2.10.2-6   Embedded GNU C Library: Shared lib
ii  linux-libc-dev                2.6.32-11  Linux support headers for userspac

Versions of packages libc6-dev recommends:
ii  gcc [c-compiler]              4:4.4.3-1  The GNU C compiler
ii  gcc-4.4 [c-compiler]          4.4.3-7    The GNU C compiler

Versions of packages libc6-dev suggests:
ii  glibc-doc                     2.10.2-6   Embedded GNU C Library: Documentat
ii  manpages-dev                  3.24-1     Manual pages about using GNU/Linux

-- no debconf information



Reply to: