Có thể sử dụng lệnh gcc sử dụng int cho tất cả các cuộc gọi hệ thống chứ không phải sysenter? Câu hỏi này nghe có vẻ lạ nhưng tôi phải biên dịch một số dự án như Python và Firefox theo cách này.Làm thế nào để buộc gcc sử dụng int cho các cuộc gọi hệ thống, không phải sysenter?
Tóm tắt
Nhờ jbcreix, tôi đã tải về glibc 2,9 mã nguồn, và sửa đổi các dòng trong sysdeps/unix/sysv/Linux/i386/sysdep.h, để vô hiệu hóa sử dụng sysenter bởi #undef I386_USE_SYSENTER
, Và nó hoạt động.
dễ dàng, biên dịch lại thư viện C của bạn sau khi thay thế sysenter bằng int 80 trong syscall.s và liên kết lại. Đây không phải là trình biên dịch tạo ra mã có nghĩa là bạn may mắn. – jbcreix
@jbcreix Cảm ơn vì điều đó. Bạn có thể đăng nó như một câu trả lời để tôi có thể chấp nhận câu trả lời? – ZelluX