https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200
--- Comment #17 from Xi Ruoyao <ryxi at stu dot xidian.edu.cn> --- (In reply to Richard Biener from comment #16) > We might want to add a function attribute to allow to specify symver, so like > > int pci_fill_info_v31(struct pci_dev *d, int flags) > __attribute__((alias("pci_fill_info"), symver("@LIBPCI_3.0")); > > or similar (combine alias and symver as symver_alias?). Or simply > recognize @ in alias. But a normal alias is int pci_fill_info(struct pci_dev *, int) __attribute__((alias("pci_fill_info_v31"))); The exported name is the function declare name, and the actual name is in alias attribute. I prefer int pci_fill_info(struct pci_dev *, int) __attribute__((symver_alias("@LIBPCI_3.0", "pci_fill_info_v31")));