Hi, For the last 2 months or more, I have been quietly working on the changes to OSv to support static executables and dynamically linked executables via Linux dynamic linker (aka ld-linux-x86-64.so.2).
I think I am at the point where I can start submitting the changes. And I am not sure whether I should use the traditional approach of sending the patches to this mailing list or create pull requests on Git Hub? I think the changes can be grouped into the following sets: - enhance OSv dynamic linker to support statically linked executables (this would 3-5 commits/patches) - implement arch_prctl - implement FS register switch on syscall and interrupt/exception entry/exit and other places - add all extra necessary syscalls to linux.cc - most of the 40-50 new ones are straightforward mappings to function calls but some like clone and other require a bit of extra implementation - so maybe 3-5 commits/patches - improve vdso: mostly add logic to handle FS register switch - scripts like loader.py and build to support statically linked executables - various identified related improvements/fixed - 5 -7 small patches I have been testing my changes mostly by running various apps and unit tests via Linux dynamic linker (like ./scripts/run.py -e '/lib64/ld-linux-x86-64.so.2 /tests/tst-hello' where tst-hello is a dynamically linked pie) and I got following ones to work: - 86 unit tests (most of the ones that use standard glibc interface - the tst-async.so and tst-app.so do not fit this bill) - nginx - lighhtpd - rust-pie-example - rust-pie-httpserver - golang-pie-example - golang-pie-httpserver - iperf3 - simple executables from Linux host like ls/find/tree - lua - graalvm-hello, graalvm-httpserver - sqlite - redis - java including http server - node js - python - possibly many others I have tested also the statically linked hello world executable (the ld-linux-x86-64.so.2 is also statically linked). Interestingly enough the Golang statically linked one does not work yet. There are still some outstanding issues I have identified but I feel that most of the changes are ready to go. Regards, Waldek -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/d1503e6f-90ea-46a2-89b7-c6aefcaa2775n%40googlegroups.com.