Bug 114845
Summary: | _exit() in IA32 comaptibility lib calls unimplemented syscall | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 3 | Reporter: | Martin Wilck <martin.wilck> |
Component: | glibc | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Brian Brock <bbrock> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 3.0 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ia64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 107116 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2004-02-09 15:52:21 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Martin Wilck
2004-02-03 15:34:18 UTC
I know you want to mark this as a duplicate of BUG 107116. Before you do so, hgave a look at this code: GLIBC_SOURCES/sysdeps/unix/sysv/linux/_exit.c void _exit (status) int status; { while (1) { #ifdef __NR_exit_group INLINE_SYSCALL (exit_group, 1, status); #endif INLINE_SYSCALL (exit, 1, status); #ifdef ABORT_INSTRUCTION ABORT_INSTRUCTION; #endif } } Looking at this code, it seems that this file includes wrong kernel headers suggesting that the exit_group() syscall exists. IMO there'd be an easy way to handle this problem: include correct kernel headers that do not define NR_exit_group and other NR_ macros for unimplemented syscalls on ia64/ia32. exit_group is implemented on i386, therefore it is of course in i386 headers. Compatibility libraries certainly shouldn't differ from the real ones, it really either needs to be implemented in the kernel, or implemented in the emulator. I fail to see why a compatibility library should invoke unimplemented system calls. Actually, I consider that pretty dangerous. To my understanding, what mainly matters is the ABI exposed by the library to applications, not the kernel interface. |