2008-12-09 5 views
1

Примечание эти две настройки конфигурации системы RedHat Linux:В чем разница между GNU_LIBC_VERSION и GNU_NPTL_VERSION?

$ getconf GNU_LIBC_VERSION 
glibc 2.3.4 

$ getconf GNU_LIBPTHREAD_VERSION 
NPTL 2.3.4 

Я вижу, что они соответствуют некоторым из библиотек TLS:

/lib/tls/libc-2.3.4.so 
/lib/tls/libm-2.3.4.so 
/lib/tls/libpthread-2.3.4.so 
/lib/tls/librt-2.3.4.so 

Я хотел бы связать с этими библиотеками вместо /usr/lib эквивалентов , У меня есть несколько вопросов:

  1. Я видел это на RedHat и Debian. Он существует во всех дистрибутивах GNU Linux?
  2. Есть ли случаи, когда GNU_LIBC_VERSION отличается от GNU_LIBPTHREAD_VERSION?
  3. Являются ли эти переменные безопасными для идентификации разделяемых библиотек в /lib/tls? Я хотел бы автоматизировать это в Makefile, а не жестко кодировать магический номер версии glibc/pthread.

ответ

3

The NPTL project, который впервые реализовал pThreads в Linux, был отдельным проектом, который первоначально добавлял поддержку ядра и предоставлял свою собственную библиотеку.

Когда он был достаточно стабильным, он был объединен с glibc. Я бы предположил, что эти две версии идентичны во всех достаточно современных установках.

В Ubuntu 8.10 выходной, как это:

 
$ getconf GNU_LIBC_VERSION 
glibc 2.8.90 
$ getconf GNU_LIBPTHREAD_VERSION 
NPTL 2.8.90 
+0

ли ваша система /lib/tls/libc-2.8.90.so? – Tom 2008-12-09 22:36:22