https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66912
--- Comment #2 from nsz at gcc dot gnu.org --- protected only means it cannot be overridden. so we know the symbol will be resolved to the local one, however it may be visible externally and then the address must be the same in the other modules which is a problem if the main executable has a copy reloc against this symbol.