* config/tc-sparc.h (tc_fix_adjustable) [OBJ_ELF]: A reloc against
authorIan Lance Taylor <ian@airs.com>
Wed, 4 Feb 1998 20:29:30 +0000 (20:29 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 4 Feb 1998 20:29:30 +0000 (20:29 +0000)
a gas internal symbol is adjustable.

gas/ChangeLog
gas/config/tc-sparc.h

index 67ac762396698eb64d22ea24a666591a0857b6cb..6d4ca717f5cbe8b752074f26e85ca141d2b66c15 100644 (file)
@@ -1,5 +1,8 @@
 Wed Feb  4 13:17:19 1998  Ian Lance Taylor  <ian@cygnus.com>
 
+       * config/tc-sparc.h (tc_fix_adjustable) [OBJ_ELF]: A reloc against
+       a gas internal symbol is adjustable.
+
        * as.h: If gcc version greater than 2.6, use `__format__' and
        `__printf__' in function attributes, rather than `format' and
        `printf'.
index cea036d1b5ed38917dbf65de9c25355142524646..5b731a01ed2508b399b24235f2069be9ffba77fe 100644 (file)
@@ -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));