This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[gas] Handle m68k-uclinux like m68k-elf in EXTERN_FORCE_RELOC
- From: Bernardo Innocenti <bernie at develer dot com>
- To: binutils at sources dot redhat dot com
- Date: Fri, 16 Jan 2004 00:51:16 +0100
- Subject: [gas] Handle m68k-uclinux like m68k-elf in EXTERN_FORCE_RELOC
- Organization: Develer S.r.l.
2004-01-16 Bernardo Innocenti <bernie@develer.com>
* config/tc-m68k.h (EXTERN_FORCE_RELOC): Handle m68k-uclinux specially,
like m68k-elf.
* config/tc-m68k.c (RELAXABLE_SYMBOL): Use EXTERN_FORCE_RELOC instead
of hard-coded test for TARGET_OS=elf.
diff -Nru binutils-2.14.90.0.7.orig/gas/config/tc-m68k.c binutils-2.14.90.0.7/gas/config/tc-m68k.c
--- binutils-2.14.90.0.7.orig/gas/config/tc-m68k.c 2003-10-29 18:37:48.000000000 +0100
+++ binutils-2.14.90.0.7/gas/config/tc-m68k.c 2003-12-22 08:26:02.361994153 +0100
@@ -732,7 +732,7 @@
libraries, and we can relax any external sym. */
#define relaxable_symbol(symbol) \
- (!((S_IS_EXTERNAL (symbol) && strcmp (TARGET_OS, "elf") != 0) \
+ (!((S_IS_EXTERNAL (symbol) && EXTERN_FORCE_RELOC) \
|| S_IS_WEAK (symbol)))
/* Compute the relocation code for a fixup of SIZE bytes, using pc
diff -Nru binutils-2.14.90.0.7.orig/gas/config/tc-m68k.h binutils-2.14.90.0.7/gas/config/tc-m68k.h
--- binutils-2.14.90.0.7.orig/gas/config/tc-m68k.h 2003-08-21 17:28:48.000000000 +0200
+++ binutils-2.14.90.0.7/gas/config/tc-m68k.h 2003-12-22 08:22:53.982617970 +0100
@@ -169,8 +169,11 @@
#define tc_fix_adjustable(X) tc_m68k_fix_adjustable(X)
extern int tc_m68k_fix_adjustable PARAMS ((struct fix *));
-/* Target *-*-elf implies an embedded target. No shared libs. */
-#define EXTERN_FORCE_RELOC (strcmp (TARGET_OS, "elf") != 0)
+/* Target *-*-elf implies an embedded target. No shared libs.
+ *-*-uclinux also requires special casing to prevent GAS from
+ generating unsupported R_68K_PC16 relocs. */
+#define EXTERN_FORCE_RELOC \
+ ((strcmp (TARGET_OS, "elf") != 0) && (strcmp (TARGET_OS, "uclinux") != 0))
/* Values passed to md_apply_fix3 don't include symbol values. */
#define MD_APPLY_SYM_VALUE(FIX) 0
--
// Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/ http://www.develer.com/