【问题标题】:How to correlate glibc and "libc" versions?如何关联 glibc 和“libc”版本?
【发布时间】:2011-08-19 11:27:00
【问题描述】:

我的 Linux 机器上 realpath 的手册页说:

VERSIONS
       On Linux this function appeared in libc 4.5.21.

现在这是什么意思?它指的是哪个 libc - “Linux libc”? - 我在哪里可以找到与不同 libc 风格相匹配的列表,这样我就可以看到链接到这个函数和其他函数的最低要求是什么?

GLIBC 的版本是 2.13,比 4.5.21 低很多,但是关于 glibc 的维基百科页面说:

在 1990 年代初期, Linux 内核分叉了 glibc。他们的 fork,称为“Linux libc”,是 单独维护多年,并且 发布版本 2 到 5。

...和

最后使用的 Linux libc 版本 使用了内部名称(soname) libc.so.5.继此之后, Linux 上的 glibc 2.x 使用 soname libc.so.6

这是否意味着任何 glibc 都等同于主版本高于 5 的“Linux libc”?

还有其他手册页引用了这个或那个版本的“libc”,所以realpath 只是一个大问题的例子。

注意:我正在构建的代码不限于Linux,这就是为什么我需要一个确定的方法来检测某个功能是否可用。

【问题讨论】:

    标签: glibc libc realpath


    【解决方案1】:

    glibc 虽然是 2.x 版,但多年来一直被称为“libc6”,以与旧的 libc3/4/5 的版本控制方案兼容。无论如何,Linux 系统上的手册页非常有用,但不一定是规范的。 glibc 使用“信息”系统而不是手册页,因此对于 glibc 函数,您最好查看 glibc manual 而不是手册页。虽然 realpath 函数上的错误类别在历史背景下很有趣,但除非您针对的是 libc5 系统(当然您不是),否则并不是特别有用。

    【讨论】:

    • 感谢您的建议。不过,也许有人知道匹配版本的来源。
    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 2018-04-04
    • 2018-07-21
    • 2011-01-17
    • 2018-12-19
    • 2015-09-20
    相关资源
    最近更新 更多