https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
Bug ID: 101766 Summary: Microblaze gcc misses symver but __has_attribute(symver) returns true Product: gcc Version: 10.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: giulio.benetti at benettiengineering dot com Target Milestone: --- Microblaze gcc can't use .symver attribute leading to: error: symver is only supported on ELF platforms This is a simple test-case(taken from libfuse3) that reproduce the problem: ''' # if !__has_attribute (symver) # error symver attribute not supported # endif #else #error __has_attribute not defined, assume we do not have symver #endif __attribute__ ((symver ("fuse_new@FUSE_3.0"))) void func1(void) { } int main(void) { return 0; } ''' The problem is the discrepancy I've found between __has_attribute(symver) that return true, while in gcc/gcc/config.gcc 'elfos.h' is not listed under Microblaze cases. Trying adding elfos.h to it leads to other linker problems and this makes me think that Microblaze doesn't actually support __ELF__(symver). So I thought to build gcc using --disable-symvers explictly until a fix is found, but that doesn't either work. Can you please give help? Thanks a lot!