From a1f2d7424f80826f1b8d4acd0e0a88c658cb82c6 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 6 Aug 1999 14:02:34 +0000 Subject: [PATCH] 1999-08-06 Jakub Jelinek * config/tc-sparc.h (tc_fix_adjustable): Fix check for PIC local non-adjustable symbols. --- gas/ChangeLog | 5 +++++ gas/config/tc-sparc.h | 22 +++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index ecdcd7dcf3c..a7af64597b6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +1999-08-06 Jakub Jelinek + + * config/tc-sparc.h (tc_fix_adjustable): Fix check for PIC local + non-adjustable symbols. + Thu Aug 5 16:52:51 1999 Jerry Quinn * 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 bf7b6f93a29..2435d723d65 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 () -- 2.30.2