注意这两个 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
等价物。我有几个问题:
- 我在 RedHat 和 Debian 上看到过这个。它是否存在于所有 GNU Linux 发行版中?
- 有什么
GNU_LIBC_VERSION
不同的情况GNU_LIBPTHREAD_VERSION
吗? - 这些变量是否可以安全地用于识别中的共享库
/lib/tls
?我想在 Makefile 中自动执行此操作,而不是硬编码一个神奇的 glibc/pthread 版本号。