Qual é a diferença entre GNU_LIBC_VERSION e GNU_NPTL_VERSION?

votos
1

Observe estas duas definições de configuração do sistema RedHat Linux:

$ getconf GNU_LIBC_VERSION
glibc 2.3.4

$ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.3.4

Eu vejo eles correspondem a algumas das bibliotecas 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

Eu gostaria de ligar contra essas bibliotecas em vez dos /usr/libequivalentes. Eu tenho algumas perguntas:

  1. Eu já vi isso em RedHat e Debian. Será que existe em todas as distribuições GNU Linux?
  2. Existe algum caso em que GNU_LIBC_VERSIONdifere GNU_LIBPTHREAD_VERSION?
  3. São essas variáveis seguro usar para identificar as bibliotecas compartilhadas em /lib/tls? Eu gostaria de automatizar isso em um Makefile, ao invés de embutir a / número da versão pthread mágica glibc.
Publicado 09/12/2008 em 22:57
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

O projeto NPTL que implementado pela primeira vez Pthreads no Linux era um projeto separado inicialmente adicionando suporte do kernel e fornecendo sua própria biblioteca.

Quando era estável o suficiente que foi incorporada pela glibc. Eu diria que essas duas versões são idênticas em todas as instalações razoavelmente up-to-date.

No Ubuntu 8.10, a saída é assim:

$ GNU_LIBC_VERSION getconf
glibc 2.8.90
$ GNU_LIBPTHREAD_VERSION getconf
NPTL 2.8.90
Respondeu 09/12/2008 em 23:12
fonte usuário

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