diff options
author | Nick Clifton <nickc@redhat.com> | 2004-01-26 18:09:30 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2004-01-26 18:09:30 +0000 |
commit | 6358301e9957ea78488d4ccb78471f467a2bac97 (patch) | |
tree | 05c95e61f2860e0565ed7ed93c343b4206c26190 | |
parent | cbf0ee7967dfcaf5876437ef1a5bad2ccf85f0dc (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-m68k.c | 4 | ||||
-rw-r--r-- | gas/config/tc-m68k.h | 9 |
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 |