summary refs log tree commit diff stats
path: root/results/scraper/fex/1208
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/fex/1208')
-rw-r--r--results/scraper/fex/120823
1 files changed, 23 insertions, 0 deletions
diff --git a/results/scraper/fex/1208 b/results/scraper/fex/1208
new file mode 100644
index 000000000..4581f153e
--- /dev/null
+++ b/results/scraper/fex/1208
@@ -0,0 +1,23 @@
+Reasons to fork glibc
+We really don't want to do this, but there are some reasons to go about doing this and we need to track the pain points.

+This list will grow as we care about more things

+

+- clone support

+  - There are a lot of clone flags that can't be accurately wrapped while using glibc

+  - One of the big issues is that a guest application can be using clone directly, with flags that if we allow it breaks FEX's TLS usage.

+  - This is because glibc doesn't provide us a way to do clone flags plus keeping our TLS setup working

+  - We would need to fork glibc to expose a subset of flags AND keep our TLS working.

+- 32-bit thunks

+  - In order to keep 32-bit VA usage down, we will need to wrap the mmap and munmap usage inside of glibc's dynamic loader

+  - The 32-bit side of the thunk stays in the 32-bit VA space.

+  - A significant amount of the 64-bit side could live in 64-bit VA space

+  - Exported symbols would need to still live in the 32-bit VA, which means the full host library also needs to live in the 32-bit VA, or we need to duplicate the symbol inside of the 32-bit space   

+

+- Guest thunk hooks

+  - Add support for hooking when symbols are loaded so we can partially thunk a library

+  - A bit gross but would work for partial thunking?

+

+- Guest thunk callback support

+  - If the thunk creates a thread and is expected to call in to the guest as a callback. Then TLS state doesn't exist

+  - We could have a TLS region allocated for a guest thread post-thread creation if this was the case

+  - Bit of a faff
\ No newline at end of file