Re: (E)GLIBC: inline syscalls
Petr Salinger a écrit :
>> But in fact, the HAVE_INLINED_SYSCALLS currently
>> means only HAVE_INTERNAL_SYSCALLS ...
>>
>>> The calls to INLINE_SYSCALL is not the part that worries me the most. It's
>>> rather the code between #ifdef HAVE_INLINED_SYSCALLS in the elf/
>>> directory. Not something we can workaround easily from our
>>> ports/sysdeps/directory.
>> I would suggest declare HAVE_INLINED_SYSCALLS, but keep current
>> "#define INLINE_SYSCALL(name, nr, args...) __syscall_##name (args)"
>>
>> and only provide INTERNAL_SYSCALL as
>> #define INTERNAL_SYSCALL(name, err, nr, args...) INTERNAL_SYSCALL_##name(err,
>> args...)
>>
>> Currently there is only one needed - INTERNAL_SYSCALL_writev due to
>> dl-misc.c: INTERNAL_SYSCALL (writev, err, 3, fd, &iov, niov)
>
> I have done it, in fact there is a need for two macros:
>
> INTERNAL_SYSCALL_close(name, err, nr, fd)
> INTERNAL_SYSCALL_writev(name, err, nr, fd, iov, cnt)
>
> Testsuite is OK, code is in glibc-bsd and pkg-glibc SVNs.
>
Thanks, that will do it for now.
However I still think we should plan using real inline syscalls sooner
or later to avoid future problems like this one, but at least now we
have a bit of time.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
Reply to: