aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-01-26 18:09:30 +0000
committerNick Clifton <nickc@redhat.com>2004-01-26 18:09:30 +0000
commit6358301e9957ea78488d4ccb78471f467a2bac97 (patch)
tree05c95e61f2860e0565ed7ed93c343b4206c26190
parentcbf0ee7967dfcaf5876437ef1a5bad2ccf85f0dc (diff)
downloadgdb-6358301e9957ea78488d4ccb78471f467a2bac97.zip
gdb-6358301e9957ea78488d4ccb78471f467a2bac97.tar.gz
gdb-6358301e9957ea78488d4ccb78471f467a2bac97.tar.bz2
(EXTERN_FORCE_RELOC): Handle m68k-uclinux specially, like m68k-elf.
(RELAXABLE_SYMBOL): Use EXTERN_FORCE_RELOC instead of hard-coded test for TARGET_OS=elf.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-m68k.c4
-rw-r--r--gas/config/tc-m68k.h9
3 files changed, 15 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5b4d747..f10f9f7 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2004-01-26 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.
+
2004-01-24 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (hilo_interlocks): Change definition
diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c
index 09a8396..5bef34b 100644
--- a/gas/config/tc-m68k.c
+++ b/gas/config/tc-m68k.c
@@ -1,6 +1,6 @@
/* tc-m68k.c -- Assemble for the m68k family
Copyright 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -732,7 +732,7 @@ tc_coff_fix2rtype (fixP)
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 --git a/gas/config/tc-m68k.h b/gas/config/tc-m68k.h
index 1182820..559d5e3 100644
--- a/gas/config/tc-m68k.h
+++ b/gas/config/tc-m68k.h
@@ -1,6 +1,6 @@
/* This file is tc-m68k.h
Copyright 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -169,8 +169,11 @@ while (0)
#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