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 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.)
--
Joseph S. Myers
joseph@codesourcery.com