GNU_LIBC_VERSION和GNU_NPTL_VERSION之间有什么区别?

时间:2008-12-09 21:57:18

标签: redhat ssl nptl

请注意这两个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_VERSIONGNU_LIBPTHREAD_VERSION不同的情况?
  3. 这些变量是否可以安全地用于识别/lib/tls中的共享库?我想在Makefile中自动执行此操作,而不是硬编码魔术glibc / pthread版本号。

1 个答案:

答案 0 :(得分:3)

首先在Linux上实现pThreads的

The NPTL project是一个单独的项目,最初添加了内核支持并提供了自己的库。

当它足够稳定时,它被合并到glibc中。我认为这两个版本在所有合理的最新安装中都是相同的。

在Ubuntu 8.10上,输出如下:

$ getconf GNU_LIBC_VERSION
glibc 2.8.90
$ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.8.90