The problem was that references to weak function symbols were being
incorrectly biased by definition's offset.
PR gas/16858
* config/tc-i386.c (md_apply_fix): Do not adjust value of
pc-relative fixes against weak symbols.
+2014-04-28 Nick Clifton <nickc@redhat.com>
+
+ PR gas/16858
+ * config/tc-i386.c (md_apply_fix): Do not adjust value of
+ pc-relative fixes against weak symbols.
+
2014-04-26 Alan Modra <amodra@gmail.com>
* po/POTFILES.in: Regenerate.
#endif
}
#if defined (OBJ_COFF) && defined (TE_PE)
- if (fixP->fx_addsy != NULL && S_IS_WEAK (fixP->fx_addsy))
+ if (fixP->fx_addsy != NULL
+ && S_IS_WEAK (fixP->fx_addsy)
+ /* PR 16858: Do not modify weak function references. */
+ && ! fixP->fx_pcrel)
{
value -= S_GET_VALUE (fixP->fx_addsy);
}