[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: