aboutsummaryrefslogtreecommitdiff
path: root/src/hardware_functions.h
diff options
context:
space:
mode:
authorOsmium Sorcerer <os@sof.beauty>2026-09-23 16:16:28 +0000
committerOsmium Sorcerer <os@sof.beauty>2026-09-23 16:16:28 +0000
commit1e4319d7b9208d2ccb105c8a3853ecf97f600e4c (patch)
tree2b3201b705d4820ace5e3f06e753909755e28c1e /src/hardware_functions.h
parentb21dfd36cdafd76b5538383279d28b003188fa19 (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/hardware_functions.h')
0 files changed, 0 insertions, 0 deletions