2010-08-05 39 views
3

我有一个使用eventfd和timerfd内核系统调用的应用程序。为此,您需要一个现代化的内核和一个支持它们的libc,至少2.8。静态链接新的libc符号以与较低的libc版本一起使用

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

正如我所看到的静态链接函数将执行syscalls而不使用libc,这将使他们安全,但我可能会忽略其他问题。

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

回答

3

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

+0

阅读[此补丁](http://accel-ppp.git.sourceforge.net/git/gitweb.cgi?p=accel-ppp/accel-ppp;a=commitdiff_plain;h=d32cf13525153b9bb961a72cded215e9866e78bd)非常有帮助对我来说,也许是为了别人。 – 2012-11-15 08:47:52