diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-ppc.h | 27 |
2 files changed, 18 insertions, 14 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 08bab53..3aa7d8e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 27 19:15:27 1997 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.h (tc_fix_adjustable): Only check for GOT type + relocations, don't check for symbol being external, weak, etc. + Mon Jun 16 19:12:51 1997 Geoff Keating <geoffk@ozemail.com.au> * config/tc-ppc.h (tc_fix_adjustable): Don't let the assembler diff --git a/gas/config/tc-ppc.h b/gas/config/tc-ppc.h index e8797a7..d21610c 100644 --- a/gas/config/tc-ppc.h +++ b/gas/config/tc-ppc.h @@ -190,6 +190,12 @@ extern void ppc_adjust_symtab PARAMS ((void)); #endif /* OBJ_XCOFF */ #ifdef OBJ_ELF +/* The name of the global offset table generated by the compiler. Allow + this to be overridden if need be. */ +#ifndef GLOBAL_OFFSET_TABLE_NAME +#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" +#endif + /* Branch prediction relocations must force relocation */ #define TC_FORCE_RELOCATION_SECTION(FIXP,SEC) \ ((FIXP)->fx_r_type == BFD_RELOC_PPC_B16_BRTAKEN \ @@ -225,20 +231,13 @@ extern int ppc_section_flags PARAMS ((int, int, int)); #define tc_comment_chars ppc_comment_chars extern const char *ppc_comment_chars; -/* Keep relocations relative to the GOT, or non-PC relative. */ -#define tc_fix_adjustable(FIX) \ - ((FIX)->fx_r_type != BFD_RELOC_16_GOTOFF && \ - (FIX)->fx_r_type != BFD_RELOC_LO16_GOTOFF && \ - (FIX)->fx_r_type != BFD_RELOC_HI16_GOTOFF && \ - (FIX)->fx_r_type != BFD_RELOC_HI16_S_GOTOFF && \ - (FIX)->fx_r_type != BFD_RELOC_GPREL16 && \ - ! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && ((FIX)->fx_pcrel \ - || ((FIX)->fx_subsy != NULL \ - && (S_GET_SEGMENT ((FIX)->fx_subsy) \ - == S_GET_SEGMENT ((FIX)->fx_addsy))))) - +/* Keep relocations relative to the GOT. */ +#define tc_fix_adjustable(FIX) \ + ((FIX)->fx_r_type != BFD_RELOC_16_GOTOFF \ + && (FIX)->fx_r_type != BFD_RELOC_LO16_GOTOFF \ + && (FIX)->fx_r_type != BFD_RELOC_HI16_GOTOFF \ + && (FIX)->fx_r_type != BFD_RELOC_HI16_S_GOTOFF \ + && (FIX)->fx_r_type != BFD_RELOC_GPREL16) #endif /* OBJ_ELF */ /* call md_apply_fix3 with segment instead of md_apply_fix */ |