diff options
author | Michael Meissner <gnu@the-meissners.org> | 1997-06-27 23:19:15 +0000 |
---|---|---|
committer | Michael Meissner <gnu@the-meissners.org> | 1997-06-27 23:19:15 +0000 |
commit | d006e435275118ac736229dffd19874fee367f9f (patch) | |
tree | aaafad748e820abe47b083053c1fb03df5d2abc8 /gas | |
parent | 3a8e858f24704fbd4493b8a7f98dfb0578768159 (diff) | |
download | gdb-d006e435275118ac736229dffd19874fee367f9f.zip gdb-d006e435275118ac736229dffd19874fee367f9f.tar.gz gdb-d006e435275118ac736229dffd19874fee367f9f.tar.bz2 |
Remove brokeness in PowerPC asm
Diffstat (limited to 'gas')
-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 */ |