getsolus / ypkg

Modern, declarative, structured build format
https://getsol.us
GNU General Public License v3.0
22 stars 11 forks source link

Add optional linker flag icf={safe,all} to optimizations #20

Closed joebonrichie closed 3 years ago

joebonrichie commented 3 years ago

Identical code folding folds identical functions into a single copy, saving disk space. Generally useful for large C++ applications.

Only the gold linker can handle icf when using the gcc toolchain, although icf is generally superior when using llvm/lld.

Also add support for function-sections, this is recommended for use with ICF when using gcc/gold but not strictly necessary.

icf-all is not recommended for gcc/gold but is left as an option. icf-all is generally safe for clang/lld due to -faddrsig being default in clang.

Additionally, fix a thinko where runpath wasn't being filtered from cflags/cxxflags.