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 --- /dev/null +++ b/website/content/en/status/report-2023-04-2023-06/linuxulator.adoc @@ -0,0 +1,20 @@ +=== Linux compatibility layer update + +Contact: Dmitry Chagin + +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]. + +Preserving of an fpu xsave state across signal delivery on amd64 is implemented. +Thats made possible to run modern golang with preemptive scheduler on. + +The new facility to specify an alternate ABI root path was added to the namei(). +Previously, to dynamically reroot lookups, every Linux 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., Linux) uses one call to pwd_altroot() during exec-time into +that ABI to specify it's root directory (e.g., /compat/ubuntu) and forget about path names +translation. Thats 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.