On Wed, 2006-09-13 at 01:35 -0400, Albert Cahalan wrote:
> > The third one has always been broken on i386 for PIC code
>
> No, I was just using it today in PIC i386 code.
> The %ebx register gets pushed, the needed value
> gets moved into %ebx, the int 0x80 is done, and
> the %ebx register gets popped. Only a few odd
> calls like clone() need something different.
That's a very recent change -- it was broken for years before that.
> > and was pointless anyway, since glibc provides this
> > functionality. The kernel method has been removed from
> > userspace visibility all architectures, and we plan to
> > remove it entirely in 2.6.19 since it's not at all useful.
>
> It's damn useful. Hint: Linux does not require glibc.
Are you being deliberately obtuse or is it just a natural talent?
Other C libraries also provide syscall() -- at least dietlibc and uClibc
do.
Kernel headers do not exist to provide a library of random crap for
userspace to use.