3

eventfdおよびtimerfdカーネルシステムコールを使用するアプリがあります。そのためには、最新のカーネルとそれらをサポートするlibc、少なくとも2.8が必要です。

私の現在の状況は、適切なカーネルを備えたシステムを持っていますが、2.7.11 libcバージョンは、明らかに新しいsyscallに必要な機能をサポートしていません。
しかし、これらの2つのインターフェイス(timerfd、eventfd)は、おそらくlibcからの単なるsyscall呼び出しであるため、必要なシンボルを最新のlibcに静的にリンクしてから、適切なカーネルを使用して2.7.11libcでアプリを実行できるかどうか疑問に思いました。 。

静的にリンクされた関数は、libcを使用せずにsyscallを実行するだけで、安全になりますが、他の問題を見落としている可能性があります。

これが実現可能かどうか、そしてどうすればそれらの関数だけを静的にリンクできるかを誰かが知っていますか?

4

1 に答える 1

3

syscall()それらを直接呼び出すために使用する独自の条件付きコンパイルバージョンを作成する方がおそらくより現実的です。

于 2010-08-06T02:51:37.143 に答える