This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Fix Arm __ASSUME_COPY_FILE_RANGE (bug 23915) [committed]
On 26/11/2018 14:46, Joseph Myers wrote:
> On Mon, 26 Nov 2018, Florian Weimer wrote:
>
>> * Joseph Myers:
>>
>>> 2018-11-23 Joseph Myers <joseph@codesourcery.com>
>>>
>>> [BZ #23915]
>>> * sysdeps/unix/sysv/linux/arm/kernel-features.h
>>> [__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_COPY_FILE_RANGE):
>>> Undefine.
>>
>> So I feel kind of bad about this—I looked for such issues after the
>> first problems cropped up and just didn't seem them in the kernel source
>> tree.
>>
>> Assuming that I'm going to implement a few system call wrappers in the
>> future, how can I do a better job here?
>
> My approach is to examine the diffs for the kernel version that introduced
> the syscall, and check whether it's present (asm/unistd.h, and syscall
> table, and any relevant compat syscall table) for each (architecture, ABI)
> pair supported by glibc not using the asm-generic syscall ABI.
>
> What we really need is for the kernel to do a better job at introducing
> syscalls at the same time on all architectures, rather than just adding
> them for one or two architectures, leaving it to architecture maintainers
> to fill in the rest and so resulting in long delays before glibc can
> actually assume a syscall to be available everywhere.
>
> (I think kernel 4.4, when many socket syscalls can be assumed to be
> available everywhere, will be the next point where there are significant
> simplifications to be gained in glibc sources by increasing the global
> minimum kernel version supported - many of those functions will be able to
> move to just having a single entry in syscalls.list.)
>
I brought this issue to kernel developers on latest Linux Plumber two weeks
ago. We all agreed that Linux should avoid wiring up all-independent syscalls
in different releases for different architectures, but currently there is no
enforcing mechanism to do so.
On same discussion I also raised, from Florian's suggestion, about focal
points relating to libc kernel iteration and Arnd Bergmann and Peter Anvin
volunteered. I am ccing them so we can improve the syscall additions for
new Linux releases.
Arnd also said the idea is to have the new 64-bit time_t syscalls for all
affected architectures when it is accepted upstream.