+2003-11-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/tc-frv.c (md_pcrel_from_section): Don't adjust when
+ referencing symbol in a different section.
+
2003-11-26 Christian Groessler <chris@groessler.org>
* config/tc-z8k.c (s_segm): Fix indentation.
long
md_pcrel_from_section (fixP, sec)
fixS * fixP;
- segT sec ATTRIBUTE_UNUSED;
+ segT sec;
{
- /* Make no adjustment for relocations that will be written out. */
- if (TC_FORCE_RELOCATION (fixP))
- return 0;
+ if (TC_FORCE_RELOCATION (fixP)
+ || (fixP->fx_addsy != (symbolS *) NULL
+ && S_GET_SEGMENT (fixP->fx_addsy) != sec))
+ {
+ /* If we can't adjust this relocation, or if it references a
+ local symbol in a different section (which
+ TC_FORCE_RELOCATION can't check), let the linker figure it
+ out. */
+ return 0;
+ }
return (fixP->fx_frag->fr_address + fixP->fx_where) & ~1;
}