【发布时间】:2011-01-09 00:29:47
【问题描述】:
是否可以强制 gcc 对所有系统调用使用 int 指令,而不是 sysenter?这个问题可能听起来很奇怪,但我必须用这种方式编译一些项目,比如 Python 和 Firefox。
总结
感谢 jbcreix,我已经下载了 glibc 2.9 源代码,并修改了 sysdeps/unix/sysv/linux/i386/sysdep.h 中的行,以禁用 #undef I386_USE_SYSENTER 使用 sysenter,它可以工作了。
【问题讨论】:
-
简单,在 syscall.s 中用 int 80 替换 sysenter 后重新编译你的 C 库并再次链接。这不是编译器生成的代码,这意味着你很幸运。
-
@jbcreix 谢谢。您能否将其发布为答案,以便我接受答案?
标签: c gcc compiler-construction system-calls