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.

Reply via email to