静态链接新的libc符号以使用较低的libc版本

时间:2010-08-05 14:17:40

标签: c++ linux gcc linker libc

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

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

正如我所看到的那样,静态链接的函数只是在不使用libc的情况下执行系统调用,这样可以使它们安全,但我可能会忽略其他问题。

有人知道这听起来是否可行,我怎么能静态链接这些功能呢?

1 个答案:

答案 0 :(得分:3)

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