diff --git a/website/content/en/status/report-2023-04-2023-06/linuxulator.adoc b/website/content/en/status/report-2023-04-2023-06/linuxulator.adoc new file mode 100644 index 0000000000..9606680c33 --- /dev/null +++ b/website/content/en/status/report-2023-04-2023-06/linuxulator.adoc @@ -0,0 +1,19 @@ +=== Linux compatibility layer update + +Links: + +link:https://wiki.freebsd.org/Linuxulator[Linuxulator status Wiki page] URL: link:https://wiki.freebsd.org/Linuxulator[] + +link:https://wiki.freebsd.org/LinuxApps[Linux app status Wiki page] URL: link:https://wiki.freebsd.org/LinuxApps[] + +Contact: Dmitry Chagin + +The goal of this project is to improve FreeBSD's ability to execute unmodified man:linux[4] binaries. + +As of gitref:cbbac5609115[repository=src], preserving of an fpu xsave state across signal delivery on amd64 is implemented. +That is made possible to run modern golang with preemptive scheduler on. + +The new facility to specify an alternate ABI root path was added to the man:namei[9]. +Previously, to dynamically reroot lookups, every man:linux[4] syscall where path names translation is needed required a bit of ugly code and used `kern_alternate_path()` which does not properly resolved symlinks with leading `/` in the target. +For now a non-native ABI (i.e., man:linux[4]) uses one call to `pwd_altroot()` during exec-time into that ABI to specify it's root directory (e.g., [.filename]#/compat/ubuntu#) and forget about path names translation. +That is made possible to chroot into the Ubuntu compat without having to fix such symlinks by hand. + +In total, over 10 bugs were fixed; glibc-2.37 tests suite reports less than 70 failed tests.