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