diff options
| author | Osmium Sorcerer <os@sof.beauty> | 2026-09-23 16:16:28 +0000 |
|---|---|---|
| committer | Osmium Sorcerer <os@sof.beauty> | 2026-09-23 16:16:28 +0000 |
| commit | 1e4319d7b9208d2ccb105c8a3853ecf97f600e4c (patch) | |
| tree | 2b3201b705d4820ace5e3f06e753909755e28c1e /src/serverdata.cpp | |
| parent | b21dfd36cdafd76b5538383279d28b003188fa19 (diff) | |
Adjust release compilation and linking flags
Remove -pipe because this option is dubious and doesn't do anything.
Get rid of unwind tables. They instrument call sites (synchronous) and
any instruction boundary (asynchronous). In the release build, they only
inflate the size of the executable. Synchronous tables are necessary
for C++ exceptions, but, thankfully (and I can't praise the developers
enough) AO2 Client doesn't use them at all.
Add RELRO and NOW to the linker. While I've already removed PLT at code
generation phase with -fno-plt, turns out, ld still stupidly performs
lazy linking: the symbols are moved to GOT, but not immediately
resolved. That was an oversight of mine, so bring back full RELRO.
Add packing of relative relocations. These are moved to a separate
compact section, where they're encoded more efficiently.
Diffstat (limited to 'src/serverdata.cpp')
0 files changed, 0 insertions, 0 deletions
