mirror of
https://github.com/RGBCube/serenity
synced 2025-10-29 03:52:35 +00:00
The dynamic loader was mistakenly assuming that there are only two types of program load headers: text (RX) and data (RW). Now that we're linking with `-z separate-code`, we will also get some read-onlydata (R) segments. These can be memory-mapped directly without making a private per-process copy. To solve this, the code now instead separates the headers into map/copy instead of text/data. Writable segments get copied, while non-writable segments get memory-mapped. :^) |
||
|---|---|---|
| .. | ||
| Arch | ||
| AuxiliaryVector.h | ||
| CMakeLists.txt | ||
| Core.h | ||
| DynamicLinker.cpp | ||
| DynamicLinker.h | ||
| DynamicLoader.cpp | ||
| DynamicLoader.h | ||
| DynamicObject.cpp | ||
| DynamicObject.h | ||
| Hashes.h | ||
| Image.cpp | ||
| Image.h | ||
| Relocation.cpp | ||
| Relocation.h | ||
| Validation.cpp | ||
| Validation.h | ||