The problem appear to be that for C++ symbols the gcc assembler exports the unversioned symbols as well as the versioned ones whereas the clang assembler just exports the versioned aliases.
With gcc the linker then resolves to the unversioned symbols (and ignores the versioned ones).
Marking the unversioned symbol names .local doesn't help.
The problem appear to be that for C++ symbols the gcc assembler exports the unversioned symbols as well as the versioned ones whereas the clang assembler just exports the versioned aliases.
With gcc the linker then resolves to the unversioned symbols (and ignores the versioned ones).
Marking the unversioned symbol names .local doesn't help.