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

Bug#419103: marked as done (version GLIBC_PRIVATE not defined in libc.so.6, while loading librt.so)



Your message dated Fri, 13 Apr 2007 19:47:03 +0200
with message-id <461FC217.2090202@aurel32.net>
and subject line Bug#419103: version GLIBC_PRIVATE not defined in libc.so.6, while loading librt.so
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: libc6
Version: 2.3.6.ds1-13
Severity: important

Here is an example that demonstrates the bug:

> % cat > test.c
> #include <dlfcn.h>
> #include <stdio.h>
> #include <stdlib.h>
> 
> int main() {
>     void *hdl;
>     char *libname = "librt.so", *errmsg;
> 
>     hdl = dlopen(libname, RTLD_NOW);
>     if(hdl == NULL) {
>         errmsg = dlerror();
>         if(errmsg == NULL) errmsg = "unknown error";
>         printf("dlopen fail: %s\n", errmsg);
>     } else {
>         dlclose(hdl);
>         printf("dlopen success\n");
>     }   
>     return 0;
> }
> % gcc -ldl test.c
> % ./a.out 
> dlopen fail: /usr/lib/librt.so: symbol __librt_multiple_threads, 
> version GLIBC_PRIVATE not defined in file libc.so.6 with link time
> reference
> %

uname:
Linux athena 2.6.19.2 #2 Sat Feb 3 17:09:34 MSK 2007 i686 GNU/Linux

glibc info:
> % dpkg --list libc6
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
> ||/ Name           Version        Description
> +++-==============-==============-============================================
> ii  libc6          2.3.6.ds1-13   GNU C Library: Shared libraries
> athena% dpkg --status libc6
> Package: libc6
> Status: install ok installed
> Priority: required
> Section: libs
> Installed-Size: 11032
> Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
> Architecture: i386
> Source: glibc
> Version: 2.3.6.ds1-13
> Replaces: ldso (<= 1.9.11-9), timezone, timezones, gconv-modules, libtricks, libc6-bin, netkit-rpc, netbase (<< 4.0)
> Provides: glibc-2.3.6.ds1-1, glibc-2.3.6-2
> Depends: tzdata
> Suggests: locales, glibc-doc
> Conflicts: strace (<< 4.0-0), libnss-db (<= 2.2-6.1.1), timezone, timezones, gconv-modules, libtricks, libc6-doc, libc5 (<< 5.4.33-7), libpthread0 (<< 0.7-10), libc6-bin, libwcsmbs, apt (<< 0.3.0), libglib1.2 (<< 1.2.1-2), netkit-rpc, wine (<< 0.0.20031118-1), cyrus-imapd (<< 1.5.19-15), e2fsprogs (<< 1.35-7), initrd-tools (<< 0.1.84.1), libterm-readline-gnu-perl (<< 1.15-2)
> Conffiles:
>  /etc/init.d/glibc.sh e962bedb636c5499e97ce457878a754a
>  /etc/ld.so.conf.d/i486-linux-gnu.conf 36f09aeeab18f6af453d0a1db0a0942c
> Description: GNU C Library: Shared libraries
>  Contains the standard libraries that are used by nearly all programs on
>  the system. This package includes shared versions of the standard C library
>  and the standard math library, as well as many others.

Whatever info should I present about my system?



--- End Message ---
--- Begin Message ---
Version: 2.5


balodja a écrit :
> Package: libc6
> Version: 2.3.6.ds1-13
> Severity: important
> 
> Here is an example that demonstrates the bug:
> 
>> % cat > test.c
>> #include <dlfcn.h>
>> #include <stdio.h>
>> #include <stdlib.h>
>>
>> int main() {
>>     void *hdl;
>>     char *libname = "librt.so", *errmsg;
>>
>>     hdl = dlopen(libname, RTLD_NOW);
>>     if(hdl == NULL) {
>>         errmsg = dlerror();
>>         if(errmsg == NULL) errmsg = "unknown error";
>>         printf("dlopen fail: %s\n", errmsg);
>>     } else {
>>         dlclose(hdl);
>>         printf("dlopen success\n");
>>     }   
>>     return 0;
>> }
>> % gcc -ldl test.c
>> % ./a.out 
>> dlopen fail: /usr/lib/librt.so: symbol __librt_multiple_threads, 
>> version GLIBC_PRIVATE not defined in file libc.so.6 with link time
>> reference
>> %
> 

By default your program is linked with the linuxthreads version of the
glibc. At runtime on 2.6 kernel, the NPTL version of the glibc is used
by default.

Such a mix is forbidden when dlopening glibc libraries. This can be
avoided by either using "/lib/tls/librt.so.1" for the library or by
using the environment variable LD_ASSUME_KERNEL=2.4.1 at runtime to
force the use of the linuxthreads.

Note that the bug is not present in glibc 2.5 which is NPTL only (hence
the versioned close).

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

--- End Message ---

Reply to: