This is an alternative to https://reviews.llvm.org/D35595.
It is a lot more verbose, but it is conceptually simpler: we prefer symbols with a default version (with @@ in the name).
There is hope that we can transition the few users of @@ to @@@:
https://reviews.freebsd.org/D11653#
in which case most of the complication in here can be reverted.
May be move this code to separate static function to incapsulate this hack ?