Remove brokeness in PowerPC asm
authorMichael Meissner <gnu@the-meissners.org>
Fri, 27 Jun 1997 23:19:15 +0000 (23:19 +0000)
committerMichael Meissner <gnu@the-meissners.org>
Fri, 27 Jun 1997 23:19:15 +0000 (23:19 +0000)
gas/ChangeLog
gas/config/tc-ppc.h

index 08bab539bb588194b1c8b0c987eca6fedcf0f2bf..3aa7d8e6d089ef8f20f1db413472e5a242483238 100644 (file)
@@ -1,3 +1,8 @@
+Fri Jun 27 19:15:27 1997  Michael Meissner  <meissner@cygnus.com>
+
+       * config/tc-ppc.h (tc_fix_adjustable): Only check for GOT type
+       relocations, don't check for symbol being external, weak, etc.
+
 Mon Jun 16 19:12:51 1997  Geoff Keating  <geoffk@ozemail.com.au>
 
        * config/tc-ppc.h (tc_fix_adjustable): Don't let the assembler
index e8797a7adc301aad959a704f43166075465d5641..d21610c36db2f4284c2024db07039a5533b0f033 100644 (file)
@@ -190,6 +190,12 @@ extern void ppc_adjust_symtab PARAMS ((void));
 #endif /* OBJ_XCOFF */
 
 #ifdef OBJ_ELF
+/* The name of the global offset table generated by the compiler. Allow
+   this to be overridden if need be. */
+#ifndef GLOBAL_OFFSET_TABLE_NAME
+#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
+#endif
+
 /* Branch prediction relocations must force relocation */
 #define TC_FORCE_RELOCATION_SECTION(FIXP,SEC)                          \
 ((FIXP)->fx_r_type == BFD_RELOC_PPC_B16_BRTAKEN                                \
@@ -225,20 +231,13 @@ extern int ppc_section_flags PARAMS ((int, int, int));
 #define tc_comment_chars ppc_comment_chars
 extern const char *ppc_comment_chars;
 
-/* Keep relocations relative to the GOT, or non-PC relative. */
-#define tc_fix_adjustable(FIX)                          \
-  ((FIX)->fx_r_type != BFD_RELOC_16_GOTOFF &&           \
-   (FIX)->fx_r_type != BFD_RELOC_LO16_GOTOFF &&         \
-   (FIX)->fx_r_type != BFD_RELOC_HI16_GOTOFF &&         \
-   (FIX)->fx_r_type != BFD_RELOC_HI16_S_GOTOFF &&       \
-   (FIX)->fx_r_type != BFD_RELOC_GPREL16 &&             \
-   ! 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)))))
-
+/* Keep relocations relative to the GOT. */
+#define tc_fix_adjustable(FIX)                                         \
+  ((FIX)->fx_r_type != BFD_RELOC_16_GOTOFF                             \
+   && (FIX)->fx_r_type != BFD_RELOC_LO16_GOTOFF                                \
+   && (FIX)->fx_r_type != BFD_RELOC_HI16_GOTOFF                                \
+   && (FIX)->fx_r_type != BFD_RELOC_HI16_S_GOTOFF                      \
+   && (FIX)->fx_r_type != BFD_RELOC_GPREL16)
 #endif /* OBJ_ELF */
 
 /* call md_apply_fix3 with segment instead of md_apply_fix */