(EXTERN_FORCE_RELOC): Handle m68k-uclinux specially, like m68k-elf.
authorNick Clifton <nickc@redhat.com>
Mon, 26 Jan 2004 18:09:30 +0000 (18:09 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 26 Jan 2004 18:09:30 +0000 (18:09 +0000)
(RELAXABLE_SYMBOL): Use EXTERN_FORCE_RELOC instead of hard-coded test for
 TARGET_OS=elf.

gas/ChangeLog
gas/config/tc-m68k.c
gas/config/tc-m68k.h

index 5b4d747..f10f9f7 100644 (file)
@@ -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
 2004-01-24  Chris Demetriou  <cgd@broadcom.com>
 
        * config/tc-mips.c (hilo_interlocks): Change definition
index 09a8396..5bef34b 100644 (file)
@@ -1,6 +1,6 @@
 /* tc-m68k.c -- Assemble for the m68k family
    Copyright 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 /* 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.
 
 
    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) \
    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
      || S_IS_WEAK (symbol)))
 
 /* Compute the relocation code for a fixup of SIZE bytes, using pc
index 1182820..559d5e3 100644 (file)
@@ -1,6 +1,6 @@
 /* This file is tc-m68k.h
    Copyright 1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
 /* 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.
    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 *));
 
 #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
 
 /* Values passed to md_apply_fix3 don't include symbol values.  */
 #define MD_APPLY_SYM_VALUE(FIX) 0