From: Michael Meissner Date: Fri, 27 Jun 1997 23:19:15 +0000 (+0000) Subject: Remove brokeness in PowerPC asm X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d006e435275118ac736229dffd19874fee367f9f;p=binutils-gdb.git Remove brokeness in PowerPC asm --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 08bab539bb5..3aa7d8e6d08 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 27 19:15:27 1997 Michael Meissner + + * 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 * 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 e8797a7adc3..d21610c36db 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 */