This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC,Patch,AVR]: ad PR13503: Add new relocs to TC_VALIDATE_FIX?


Hi, in gas/config/tc-avr.h there is the following comment
to TC_VALIDATE_FIX:

/* We don't want gas to fixup the following program memory related relocations.
We will need them in case that we want to do linker relaxation.
We could in principle keep these fixups in gas when not relaxing.
However, there is no serious performance penilty when making the linker
make the fixup work. Check also that fx_addsy is not NULL, in order to make
sure that the fixup refers to some sort of lable. */


PR13503 introduced new relocs that are not mentioned in TC_VALIDATE_FIX.

The attached patch adds the new BFD_RELOC_AVR_8_LO, BFD_RELOC_AVR_8_HI,
BFD_RELOC_AVR_8_HLO to that exclude list.

I cannot say if these new relocs need to be handled there, if the must
be handled there or must *not* be handled there.  I just noticed that
the new relocs are missing there, but no clue if that's good or bad or
simply does not matter...

Thus please review this patch.  And in the case it is actually needed,
please apply it.


Johann



gas/ PR 13503 * config/tc-avr.h (TC_VALIDATE_FIX): Skip: BFD_RELOC_AVR_8_LO, BFD_RELOC_AVR_8_HI, BFD_RELOC_AVR_8_HLO.
diff --git a/gas/config/tc-avr.h b/gas/config/tc-avr.h
index 777a9df..e82bd01 100644
--- a/gas/config/tc-avr.h
+++ b/gas/config/tc-avr.h
@@ -139,11 +139,14 @@ extern long md_pcrel_from_section (struct fix *, segT);
        || FIXP->fx_r_type == BFD_RELOC_AVR_LO8_LDI_PM_NEG    \
        || FIXP->fx_r_type == BFD_RELOC_AVR_HI8_LDI_PM_NEG    \
        || FIXP->fx_r_type == BFD_RELOC_AVR_HH8_LDI_PM_NEG    \
+       || FIXP->fx_r_type == BFD_RELOC_AVR_8_LO              \
+       || FIXP->fx_r_type == BFD_RELOC_AVR_8_HI              \
+       || FIXP->fx_r_type == BFD_RELOC_AVR_8_HLO             \
        || FIXP->fx_r_type == BFD_RELOC_AVR_16_PM)            \
       && (FIXP->fx_addsy))			             \
     {                                                        \
       goto SKIP;                                             \
-   }
+    }
 
 /* This target is buggy, and sets fix size too large.  */
 #define TC_FX_SIZE_SLACK(FIX) 2

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]