aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-sparc.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1998-02-04 20:29:30 +0000
committerIan Lance Taylor <ian@airs.com>1998-02-04 20:29:30 +0000
commitdfe0d219cea71dde525273283a12b2bc8f33ecc8 (patch)
treec18c5577eb3d57036be0102251450996638b2a91 /gas/config/tc-sparc.h
parente46ede536a3530d5b449255f21edca05b3baf982 (diff)
downloadgdb-dfe0d219cea71dde525273283a12b2bc8f33ecc8.zip
gdb-dfe0d219cea71dde525273283a12b2bc8f33ecc8.tar.gz
gdb-dfe0d219cea71dde525273283a12b2bc8f33ecc8.tar.bz2
* config/tc-sparc.h (tc_fix_adjustable) [OBJ_ELF]: A reloc against
a gas internal symbol is adjustable.
Diffstat (limited to 'gas/config/tc-sparc.h')
-rw-r--r--gas/config/tc-sparc.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/gas/config/tc-sparc.h b/gas/config/tc-sparc.h
index cea036d..5b731a0 100644
--- a/gas/config/tc-sparc.h
+++ b/gas/config/tc-sparc.h
@@ -114,14 +114,16 @@ extern void sparc_handle_align PARAMS ((struct frag *));
relocations against sections. This is required for the dynamic
linker to operate properly. When generating PIC, we need to keep
any non PC relative reloc. */
-#define tc_fix_adjustable(FIX) \
- (! S_IS_EXTERNAL ((FIX)->fx_addsy) \
- && ! S_IS_WEAK ((FIX)->fx_addsy) \
- && (! sparc_pic_code \
- || (FIX)->fx_pcrel \
- || ((FIX)->fx_subsy != NULL \
- && (S_GET_SEGMENT ((FIX)->fx_subsy) \
- == S_GET_SEGMENT ((FIX)->fx_addsy)))))
+#define tc_fix_adjustable(FIX) \
+ (! S_IS_EXTERNAL ((FIX)->fx_addsy) \
+ && ! S_IS_WEAK ((FIX)->fx_addsy) \
+ && (! sparc_pic_code \
+ || (FIX)->fx_pcrel \
+ || ((FIX)->fx_subsy != NULL \
+ && (S_GET_SEGMENT ((FIX)->fx_subsy) \
+ == S_GET_SEGMENT ((FIX)->fx_addsy))) \
+ || strchr (S_GET_NAME ((FIX)->fx_addsy), '\001') != NULL \
+ || strchr (S_GET_NAME ((FIX)->fx_addsy), '\002') != NULL))
#endif
#ifdef OBJ_AOUT
@@ -134,6 +136,9 @@ extern void sparc_handle_align PARAMS ((struct frag *));
|| (FIX)->fx_r_type == BFD_RELOC_32)
#endif
+#define elf_tc_final_processing sparc_elf_final_processing
+extern void sparc_elf_final_processing PARAMS ((void));
+
#define md_operand(x)
extern void sparc_md_end PARAMS ((void));