=== Linux compatibility layer update Contact: Dmitry Chagin, + Contact: Edward Tomasz Napierala, The goal of this project is to improve FreeBSD's ability to execute unmodified Linux binaries. Current support status of specific Linux applications is being tracked at the link:https://wiki.freebsd.org/LinuxApps[Linux app status Wiki page]. The 32-bit syscalls which accept a `timespec` parameter now have their 64-bit `timespec` counterparts: `clock_settime64(2)`, `clock_gettime64(2)`, `clock_nanosleep_time64(2)`, `clock_getres_time64(2)`, `futex_time64(2)`, `pselect6_time64(2)`, `rt_sigtimedwait_time64(2)`, `utimensat_time64(2)`. The `O_PATH` flag to `open(2)` system call is now supported, as well as the `AT_EMPTY_PATH` flag to `fstatat(2)` (required for Qt5 applications in Ubuntu Focal), `fchownat(2)`, `linkat(2)`, and `utimensat(2)`. The `F_GETPIPE_SZ` `fcntl(2)` is now supported. The `ppoll(2)` system call was reworked to fix POLLRDHUP semantics. The `COMPAT_LINUX` and `COMPAT_LINUX32` kernel build options got removed; they were confusing and not quite functional. This doesn't affect the usual setups which use Linuxulator loaded as a kernel module. The FreeBSD kernel can now generate coredumps for Linux processes, on both amd64 and arm64. The cores can be analyzed with Linux `gdb(1)`. There were a number of fixes to `ptrace(2)` implementation; as a result, the Linux `strace(1)` doesn't get confused with multithreaded programs. The kernel version was bumped to 4.4.0, as required for new Arch Linux binaries. There was a number of fixes to Linuxulator on arm64, ranging from ELF auxilliary vector (auxv) and Thread-Local Storage fixes to documentation improvements. There is ongoing work to make Linuxulator on arm64 on par with the amd64 one. There is also ongoing work on improving the vDSO functionality. The `sysutils/debootstrap` port, and its corresponding `debootstrap` package, now also work on arm64, not just x86. It is also much faster now. There have been some further improvements to the startup scripts. Sponsor: EPSRC