https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200
--- Comment #28 from Florian Weimer <fw at gcc dot gnu.org> --- It seems that using symbol aliases (via .symver) in conjunction with LTO and a version script which has a local: * clause causes the LTO plugin to assume that the aliased function definitions are not (externally) referenced, so GCC will elide them. The workaround for now appears to be to put __attribute__ ((externally_visible)) on the aliased functions, so that GCC assumes that there is a reference to them that it cannot see. -flto-partition=none may also be needed.