https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109047
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- More over the idea of this attribute is you only need to say on the definition if there is going to be multiple targets. Otherwise you would get different behavior across targets. And exporting different symbols if you have one version of the code with and without it. E.g. you have a shared library with a static abi.