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

标签 c++ linux gcc linker libc

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

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

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

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

最佳答案

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

关于c++ - 静态链接新的 libc 符号以与较低的 libc 版本一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3415579/

相关文章:

c - GCC 关于 const 限定符的警告是否正确?

c++ - 从 OpenGL 着色器获取数据?

c++ - 由组合的其他成员访问 'has-a' 关系中的成员

c++ - 检查类 T 是否具有带有 void_t 的成员类型 Member

linux - 我可以从 QTextEdit 检索文本光标处字符的文本颜色(或背景颜色)吗?

Linux:弱链接整个库,如 OS X ld -weak-lfoo

python - 是否有类似 AC_CHECK_LIB 的 python setup.py 构建指令?

c++ - 为什么我应该始终启用编译器警告?

Linux内核操作系统寄存器

linux - 为英文输出设置哪个环境变量,但 ISO 单位