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

发布于 2024-09-13 04:47:12 字数 348 浏览 2 评论 0原文

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

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

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

有人知道这听起来是否可行以及我如何静态链接这些函数?

I have an app that uses eventfd and timerfd kernel syscalls. For that use you need a modern kernel and a libc that supports them, at least 2.8.

My current situation is, I have a system with the proper kernel but a 2.7.11 libc version which obviously does not support the required functions for the new syscalls.
But, as those 2 interfaces(timerfd,eventfd) are probably just a syscall call from the libc I was wondering if I could statically link the required symbols with a modern libc and then run the app on the 2.7.11 libc with the proper kernel.

As I see the statically linked functions will just execute the syscalls without using the libc and that would make them safe, but I might be overlooking other problems.

Anybody knows if this sounds feasible and how could I statically link just those functions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

゛清羽墨安 2024-09-20 04:47:12

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

It's probably more feasible to create your own conditionally-compiled versions that use syscall() to call them directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文