From: Enrico Scholz (enrico.scholz_at_sigma-chemnitz.de)
Date: Mon 11 Apr 2005 - 12:48:59 BST
Herbert Poetzl <herbert_at_13thfloor.at> writes:
>> > no, thanks I already figured it, the dietlibc needs
>> > patching as the syscall(2) for x86_64 isn't implemented
>> >
>> > .o( I wonder _what_ is running on your machine ;)
>>
>> I guess it was using _syscall3() instead of syscall(). Shouldn't it?
>
> yes, after I read your 'other' email ... this makes
> some sense ... I just wondered because I didn't know
> that it is available on x86_64 (headers)
To clearify things:
util-vserver prefers to use _syscall3() (which is called 'fast'
syscall invocation method in the ./configure output) when it is
available. _syscall3() is often implemented with inline assembler
in <asm/unistd.h>. But at least on i386, it can not be used in
combination with dynamic linking as it writes to the %ebx register
which is reserved for PIC addressing.
Therefore, most glibc kernel-headers do not provide the _syscallX()
functions overall and the 'traditional' syscall(2) must be used.
Enrico
_______________________________________________
Vserver mailing list
Vserver_at_list.linux-vserver.org
http://list.linux-vserver.org/mailman/listinfo/vserver