https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114532
--- Comment #4 from David Brown <david at westcontrol dot com> --- I'm not personally particularly interested in performance on x86 systems - my work is in embedded microcontroller programming. But I did push for "-fno-common" to be the default in gcc because "-fcommon" greatly reduces the risk of some kinds of errors in code. I've tried fiddling around a bit with different gcc targets and options on godbolt.org : <https://godbolt.org/z/KqxKqeKbK> It's easy to see the difference between common symbols and non-common symbols by using "-fcommon" and comparing non-initialised externally linked objects with initialised ones (since these are never common). It seems that for some targets (like x86-64), there is no "-fsection-anchors" support at all. For some (like mips), you can choose it explicitly. And for some (like ARM 32-bit and 64-bit), it is automatic when optimising. I assume section anchors can be a gain for some targets, but not so much for others. So certainly "-fsection-anchors" will not be a help for x86-64, since that target does not support section anchors. (And for targets that /do/ support them, such as ARM, it's important not to enable -fdata-sections since that blocks the anchors.)