This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH] add m68k-uclinux-* target
- From: Bernardo Innocenti <bernie at develer dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: binutils at sources dot redhat dot com
- Date: Fri, 02 Jan 2004 19:04:41 +0100
- Subject: Re: [PATCH] add m68k-uclinux-* target
- Organization: Develer S.r.l.
- References: <3FE51545.8070101@develer.com> <m3smiyb9gu.fsf@redhat.com>
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/