FreeBSD The Power to Serve

Linux compatibility layer update

Contact: Dmitry Chagin, <dchagin@FreeBSD.org>
Contact: Edward Tomasz Napierala, <trasz@FreeBSD.org>

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 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


Last modified on: July 24, 2021 by Daniel Ebdrup Jensen