[PATCH] add m68k-uclinux-* target

Bernardo Innocenti bernie@develer.com
Fri Jan 2 18:04:00 GMT 2004


Nick Clifton wrote:

>>2003-21-12  Bernardo Innocenti  <bernie@develer.com>
>>
>>	* config.bfd: Add uClinux target.
>>
>>2003-21-12  Bernardo Innocenti  <bernie@develer.com>
>>
>>	* configure.in: Add uClinux target.
>>	* configure: Regenerate.
>>
>>2003-21-12  Bernardo Innocenti  <bernie@develer.com>
>>
>>	* configure.tgt: Add uClinux target.
> 
> 
> Approved and applied (with the fix to config.bfd)

Thank you, but there were some additional bits for as/config/tc-m68k.[ch]
which I submitted in a later patch.  Could you please apply these too?

Here it is, separated from the rest and updated to current CVS:


2004-01-02  Bernardo Innocenti  <bernie@develer.com>

	* config/tc-m68k.h (EXTERN_FORCE_RELOC): Add special handling for
	uClinux.
	* config/tc-m68k.c (relaxable_symbol): Use EXTERN_FORCE_RELOC instead
	of hard-coded test for TARGET_OS=elf.

diff -nru binutils.orig/gas/config/tc-m68k.c binutils/gas/config/tc-m68k.c
--- binutils.orig/gas/config/tc-m68k.c	2003-10-29 18:37:48.000000000 +0100
+++ binutils/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.orig/gas/config/tc-m68k.h binutils/gas/config/tc-m68k.h
--- binutils.orig/gas/config/tc-m68k.h	2003-08-21 17:28:48.000000000 +0200
+++ binutils/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/




More information about the Binutils mailing list