Implement libc thunk library
- Dominant language
- C++
- Stars
- 8k
- Forks
- 351
- Avg merge
- 12h 31m
- Merged PRs (30d)
- 102
Description
Thunking libc itself has the potential to make thunking other libraries significantly more robust by making various workarounds unnecessary (see #1208). Here's an (incomplete) list of nontrivial things that need to be tackled:
* Program startup (`__libc_start_main`)
* `printf`-like functions (including fprintf, sprintf, snprintf, vprintf, ...)
* Functions with function pointer arguments (`qsort`)
* Data symbol handling:
* `errno`
* getopt: `optarg`/`optind`/`opterr`/`optopt`
* Struct repacking:
* Repacking of data in parameter structs that have different layouts across architectures (e.g. `stat`)
* Repacking for arguments passed to callbacks
* `__lxstat`/`__fxstat`/...: Data layout of parameter struct is determined by a version field
Contributor guide
Assessment
This issue has not been assessed yet.