In article <39faa27a-2f79-3296-b316-513a6a3fa...@gmx.com>, Kamil Rytarowski <n...@gmx.com> wrote: >-=-=-=-=-=- >-=-=-=-=-=- > >On 23.09.2019 00:59, Christos Zoulas wrote: >> Module Name: src >> Committed By: christos >> Date: Sun Sep 22 22:59:40 UTC 2019 >> >> Modified Files: >> src/bin/df: df.c >> src/distrib/sets/lists/base: shl.mi >> src/distrib/sets/lists/debug: shl.mi >> src/distrib/sets/lists/modules: ad.arm ad.mips md.amd64 md.sparc64 mi >> src/lib/libc: shlib_version >> src/lib/libc/compat/gen: Makefile.inc compat_opendir.c >> src/lib/libc/compat/sys: Makefile.inc compat_fhstatvfs.c >> compat_fhstatvfs1.c compat_statfs.c >> src/lib/libc/include: namespace.h >> src/lib/libc/sys: Makefile.inc statvfs.c >> src/share/man/man5: statvfs.5 >> src/sys/compat/common: compat_mod.h files.common vfs_syscalls_20.c >> vfs_syscalls_30.c >> src/sys/compat/netbsd32: files.netbsd32 netbsd32.h netbsd32_conv.h >> netbsd32_fs.c syscalls.conf syscalls.master >> src/sys/conf: files >> src/sys/kern: init_sysent.c syscalls.conf syscalls.master vfs_subr.c >> vfs_syscalls.c >> src/sys/miscfs/specfs: spec_vnops.c >> src/sys/modules: Makefile >> src/sys/sys: param.h statvfs.h >> src/usr.bin/ktruss: dump.c >> Added Files: >> src/lib/libc/compat/gen: compat___getmntinfo13.c >> src/lib/libc/compat/sys: compat___fhstatvfs140.c compat___fhstatvfs40.c >> compat_statvfs.c >> src/sys/compat/common: compat_90_mod.c vfs_syscalls_90.c >> src/sys/compat/netbsd32: netbsd32_compat_90.c >> src/sys/conf: compat_netbsd90.config >> src/sys/modules/compat_90: Makefile >> src/sys/modules/compat_netbsd32_90: Makefile >> >> Log Message: >> Add a new member to struct vfsstat and grow the unused members >> The new member is caled f_mntfromlabel and it is the dkw_wname >> of the corresponding wedge. This is now used by df -W to display >> the mountpoint name as NAME= >> >> > >I propose to add a fallback inside libc to the older syscalls. In case >of ENOSYS pick older syscall and zero the new struct field. > >This change breaks new userland with older kernel. I just hit this >problem when upgraded before upgrading the kernel and ./build.sh >install=/ broke in the middle leaving me with corrupted setup. >
New userland + old kernel is never guaranteed to work. While what you suggest might work in this case, it adds significant complexity because you need to wrap the new syscalls specially. christos