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: