--- binutils.orig/gold/resolve.cc 2017-01-16 13:36:00.782976888 +0000 +++ binutils-2.25.1/gold/resolve.cc 2017-01-16 13:36:25.438655203 +0000 @@ -279,15 +279,10 @@ Symbol_table::resolve(Sized_symbol && (to->visibility() == elfcpp::STV_HIDDEN || to->visibility() == elfcpp::STV_INTERNAL)) { - // A dynamic object cannot reference a hidden or internal symbol - // defined in another object. - gold_warning(_("%s symbol '%s' in %s is referenced by DSO %s"), - (to->visibility() == elfcpp::STV_HIDDEN - ? "hidden" - : "internal"), - to->demangled_name().c_str(), - to->object()->name().c_str(), - object->name().c_str()); + // The symbol is hidden, so a reference from a shared object + // cannot bind to it. We tried issuing a warning in this case, + // but that produces false positives when the symbol is + // actually resolved in a different shared object (PR 15574). return; } else