2001-02-28 Andreas Jaeger <aj@suse.de>, Bo Thorsen <bo@suse.de>
authorAndreas Jaeger <aj@suse.de>
Wed, 28 Feb 2001 12:49:40 +0000 (12:49 +0000)
committerAndreas Jaeger <aj@suse.de>
Wed, 28 Feb 2001 12:49:40 +0000 (12:49 +0000)
* config/tc-i386.c (tc_gen_reloc): Remove ugly hack which is not needed
anymore since we use bfd_elf_generic_reloc now.
(md_apply_fix3): Only apply hack for partial_inplace if not using RELA.

gas/ChangeLog
gas/config/tc-i386.c

index 712d237e8c1c4f06253ff43829d2b1191ec65ded..879405e0168357ac02fb2c5031df8e719b1b8000 100644 (file)
@@ -1,3 +1,9 @@
+2001-02-28  Andreas Jaeger  <aj@suse.de>, Bo Thorsen  <bo@suse.de>
+
+       * config/tc-i386.c (tc_gen_reloc): Remove ugly hack which is not needed
+       anymore since we use bfd_elf_generic_reloc now.
+       (md_apply_fix3): Only apply hack for partial_inplace if not using RELA.
+
 2001-02-27  Alan Modra  <alan@linuxcare.com.au>
 
        * configure.in (BFD_VERSION): New.
@@ -37,7 +43,7 @@
        * Makefile.in: Regenerated.
        * configure.in: Added configuration for ia64-*-aix*.
        * configure: Regenerated.
-       
+
 2001-02-21  David Mosberger  <davidm@hpl.hp.com>
 
        * config/tc-ia64.c (enum operand_match_result): New type.
@@ -47,7 +53,7 @@
        (parse_operands): New locals result, error_pos, out_of_range_pos,
        curr_out_of_range_pos.  Rewrite operand matching loop to give better
        error messages.
-       
+
 2001-02-21  David Mosberger  <davidm@hpl.hp.com>
 
        * config/tc-ia64.c (struct unwind): Add member "prologue_count".
index 105848dd64fcd511fbcb37e0be6a83981fb8759f..f3249ff7c4a36ab17ec0798015a51c1273eb3f62 100644 (file)
@@ -4197,7 +4197,7 @@ md_apply_fix3 (fixP, valp, seg)
   if ((fixP->fx_r_type == BFD_RELOC_32_PCREL
        || fixP->fx_r_type == BFD_RELOC_16_PCREL
        || fixP->fx_r_type == BFD_RELOC_8_PCREL)
-      && fixP->fx_addsy)
+      && fixP->fx_addsy && !use_rela_relocations)
     {
 #ifndef OBJ_AOUT
       if (OUTPUT_FLAVOR == bfd_target_elf_flavour
@@ -4782,15 +4782,6 @@ tc_gen_reloc (section, fixp)
   else
     {
       rel->addend = fixp->fx_offset;
-#ifdef OBJ_ELF
-      /* Ohhh, this is ugly.  The problem is that if this is a local global
-         symbol, the relocation will entirely be performed at link time, not
-         at assembly time.  bfd_perform_reloc doesn't know about this sort
-         of thing, and as a result we need to fake it out here.  */
-      if ((S_IS_EXTERN (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy))
-         && !S_IS_COMMON (fixp->fx_addsy))
-       rel->addend -= symbol_get_bfdsym (fixp->fx_addsy)->value;
-#endif
       if (fixp->fx_pcrel)
        rel->addend -= fixp->fx_size;
     }