请注意这两个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
等价物。我有几个问题:
GNU_LIBC_VERSION
与GNU_LIBPTHREAD_VERSION
不同的情况?/lib/tls
中的共享库?我想在Makefile中自动执行此操作,而不是硬编码魔术glibc / pthread版本号。答案 0 :(得分:3)
The NPTL project是一个单独的项目,最初添加了内核支持并提供了自己的库。
当它足够稳定时,它被合并到glibc中。我认为这两个版本在所有合理的最新安装中都是相同的。
在Ubuntu 8.10上,输出如下:
$ getconf GNU_LIBC_VERSION glibc 2.8.90 $ getconf GNU_LIBPTHREAD_VERSION NPTL 2.8.90