aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-08-06 14:02:34 +0000
committerIan Lance Taylor <ian@airs.com>1999-08-06 14:02:34 +0000
commita1f2d7424f80826f1b8d4acd0e0a88c658cb82c6 (patch)
tree984c6db3aaa091bb977ee0bc8dd4939232e3fe23 /gas
parent4f2860cafc0c098d1c3f1227d4d5e0f2a652ee33 (diff)
downloadfsf-binutils-gdb-a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6.zip
fsf-binutils-gdb-a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6.tar.gz
fsf-binutils-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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-sparc.h22
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 ()