On Fri, 15 Nov 2019, Jan Hubicka wrote: > I was originaly supporting multiple symvers like: > __attribute__ ((__symver__ ("foo@VERS_1"))) int > __attribute__ ((__symver__ ("foo@VERS_2"))) int > foo_v1 (void) > { > } > > but then noticed it is rejected by gas.
That's <https://sourceware.org/bugzilla/show_bug.cgi?id=23840>. > int symver_foo_v1 (void) > __attribute__ ((__symver__ ("foo@VERS_2"))) > __attribute__ ((alias ("foo_v1"))) > > This describes what you want to do: create an alias symbol and then > attach version to it. This is broken in current patch (though i I'd rather GCC created those aliases automatically (with names that can't be used as C symbols, e.g. containing '.', if possible, or failing that implementation-namespace names that are unlikely to conflict with C symbols), so that the API doesn't replicate a peculiarity of the assembler implementation. -- Joseph S. Myers jos...@codesourcery.com