В чем разница между GNU_LIBC_VERSION и GNU_NPTL_VERSION?

голоса
1

Обратите внимание на эти две настройки конфигурации системы RedHat Linux:

$ 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 номера версии.
Задан 09/12/2008 в 22:57
источник пользователем
На других языках...                            


1 ответов

голоса
3

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

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

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

$ Getconf GNU_LIBC_VERSION
Glibc 2.8.90
$ Getconf GNU_LIBPTHREAD_VERSION
NPTL 2.8.90
Ответил 09/12/2008 в 23:12
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more