https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200
--- Comment #30 from Xi Ruoyao <xry111 at mengyan1223 dot wang> --- Pick up this again... Now __asm__(".symver a, b@@ver") is used for two different purposes: 1. Mark a function/object *definition* as the specified version. 2. "Import" a symbol (function/object) with the specified version. If we make up two attributes for those two purposes, life will be easier. For 1 we can emit ".symver" directive when the definition is emited. For 2 we can borrow the logic from .weakref and do minimal change.