|
|
|
|
|
by TuxSH
335 days ago
|
|
These options can easily be found by a Google Search or via LLM, whichever one prefers > they can be counter-productive Rarely[1]. The only side effect this can have is the constant pools (for ldr rX, [pc, #off] kind of stuff) not being merged, but the negative impact is absolutely minimal (different functions usually use different constants after all!) ([1] assuming elf file format or elf+objcopy output) There are many other upsides too: you can combine these options with -Wl,-wrap to e.g. prune exception symbols from already-compiled libraries and make the resulting binaries even smaller (depending on platform) The question is, why are function-sections and data-sections not the default? It is quite annoying to have to deal with static libs (including standard libraries themselves) that were compiled with neither these flags nor LTO. |
|