FEX-Emu / FEX-Emu/FEX

Implement libc thunk library

Open
#1,505 1 comment 0 reactions 1 assignee Claimed by @neobrain View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.