diff options
author | Ian Lance Taylor <ian@airs.com> | 1999-08-06 14:02:34 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1999-08-06 14:02:34 +0000 |
commit | a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6 (patch) | |
tree | 984c6db3aaa091bb977ee0bc8dd4939232e3fe23 | |
parent | 4f2860cafc0c098d1c3f1227d4d5e0f2a652ee33 (diff) | |
download | gdb-a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6.zip gdb-a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6.tar.gz gdb-a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6.tar.bz2 |
1999-08-06 Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.h (tc_fix_adjustable): Fix check for PIC local
non-adjustable symbols.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-sparc.h | 22 |
2 files changed, 18 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index ecdcd7d..a7af645 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +1999-08-06 Jakub Jelinek <jj@ultra.linux.cz> + + * config/tc-sparc.h (tc_fix_adjustable): Fix check for PIC local + non-adjustable symbols. + Thu Aug 5 16:52:51 1999 Jerry Quinn <jquinn@nortelnetworks.com> * config/tc-hppa.c (pa_ip): Change condition args to have '?' prefix. diff --git a/gas/config/tc-sparc.h b/gas/config/tc-sparc.h index bf7b6f9..2435d72 100644 --- a/gas/config/tc-sparc.h +++ b/gas/config/tc-sparc.h @@ -127,18 +127,22 @@ extern int elf32_sparc_force_relocation PARAMS ((struct fix *)); #define tc_fix_adjustable(FIX) \ (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && (FIX)->fx_r_type != BFD_RELOC_SPARC_GOT10 \ - && (FIX)->fx_r_type != BFD_RELOC_SPARC_GOT13 \ - && (FIX)->fx_r_type != BFD_RELOC_SPARC_GOT22 \ - && (FIX)->fx_r_type != BFD_RELOC_SPARC_WPLT30 \ && (FIX)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ && (FIX)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ && (! sparc_pic_code \ - || (FIX)->fx_pcrel \ - || ((FIX)->fx_subsy != NULL \ - && (S_GET_SEGMENT ((FIX)->fx_subsy) \ - == S_GET_SEGMENT ((FIX)->fx_addsy))) \ - || S_IS_LOCAL ((FIX)->fx_addsy))) + || ((FIX)->fx_r_type != BFD_RELOC_HI22 \ + && (FIX)->fx_r_type != BFD_RELOC_LO10 \ + && (FIX)->fx_r_type != BFD_RELOC_SPARC13 \ + && ((FIX)->fx_r_type != BFD_RELOC_32_PCREL_S2 \ + || (S_IS_DEFINED ((FIX)->fx_addsy) \ + && ! S_IS_COMMON ((FIX)->fx_addsy) \ + && ! 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))) \ + || S_IS_LOCAL ((FIX)->fx_addsy))))) /* Finish up the entire symtab. */ #define tc_adjust_symtab() sparc_adjust_symtab () |