2010-08-05 37 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