git: c8d4a2ca1a - main - Linux emulation q2 2023 report
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Jun 2023 14:26:46 UTC
The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/doc/commit/?id=c8d4a2ca1a814ddfeb88b016161d2574b713cbda commit c8d4a2ca1a814ddfeb88b016161d2574b713cbda Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2023-06-16 14:23:54 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2023-06-16 14:23:54 +0000 Linux emulation q2 2023 report Reviewed by: carlavilla, salvadore Differential Revision: https://reviews.freebsd.org/D40560 --- .../en/status/report-2023-04-2023-06/linuxulator.adoc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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 <dchagin@FreeBSD.org> + +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.