> So for statics, I think `static const char *` wins due to allowing > merging (although it doesn't matter here). For non-statics, you end up > with extra pointer constants. Those could get removed, but Linux > doesn't > have -fvisibility=hidden and I'm not sure how clever linkers are. > Maybe > setting up -fvisibility=hidden to work with monolithic non-module- > enabled builds could actually be realistic. Expect it'd remove a fair > bit of bloat but not sure how much would need to be marked as non- > hidden > other than the userspace ABI.
-fvisibility=hidden + LTO would be really awesome though, since that doesn't depend on the cleverness of linkers. So much that could be ripped out of real world monolithic builds. Kinda getting off-topic now though. LTO is pretty scary from a security perspective due to how much worse undefined behavior that was previously harmless can get.
signature.asc
Description: This is a digitally signed message part