【问题标题】:Statically linking new libc symbols to use with a lower libc version静态链接新的 libc 符号以与较低的 libc 版本一起使用
【发布时间】:2010-08-05 14:17:39
【问题描述】:

我有一个使用 eventfd 和 timerfd 内核系统调用的应用程序。为此,您需要一个现代内核和一个支持它们的 libc,至少 2.8。

我目前的情况是,我有一个具有正确内核但 libc 版本为 2.7.11 的系统,它显然不支持新系统调用所需的功能。
但是,由于这 2 个接口(timerfd、eventfd)可能只是来自 libc 的系统调用调用,我想知道是否可以将所需的符号与现代 libc 静态链接,然后使用适当的内核在 2.7.11 libc 上运行应用程序.

正如我所见,静态链接函数只会执行系统调用而不使用 libc,这将使它们安全,但我可能会忽略其他问题。

任何人都知道这听起来是否可行,我如何才能静态链接这些函数?

【问题讨论】:

    标签: c++ linux gcc linker libc


    【解决方案1】:

    创建自己的条件编译版本,使用syscall() 直接调用它们可能更可行。

    【讨论】:

    • 阅读this patch对我很有帮助,也许对其他人也有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多