For 2.12: sh-coff
Daniel Jacobowitz
drow@mvista.com
Sun Feb 17 19:15:00 GMT 2002
On Sun, Feb 17, 2002 at 08:47:23PM -0500, Daniel Jacobowitz wrote:
> On Sun, Feb 17, 2002 at 05:37:17PM -0800, Ian Lance Taylor wrote:
> > Daniel Jacobowitz <drow@mvista.com> writes:
> >
> > > This has come up before on this list, but apparently was never fixed. I
> > > only recall it being discussed in terms of archives, but the problem is more
> > > general. From the testsuite:
> > >
> > > /opt/src/binutils/obj-sh-coff/ld/ld-new -o tmpdir/asm.x --check-sections tmpdir/asm.o
> > > tmpdir/asm.o: file not recognized: File format is ambiguous
> > > tmpdir/asm.o: matching formats: coff-shl coff-shl-small
> > >
> > > Anyone?
> >
> > What is in the bfd_default_vector array in your ld-new executable?
>
> Only shcoff_vec. Which is, of course, big endian. Yet GAS seems to be
> producing coff-shl by default.
Small wonder there. Nick, in November you committed this:
1.12 (nickc 15-Nov-01):
1.12 (nickc 15-Nov-01): #if 0 /* FIXME: The "shl" varaible does not appear to exist. What happened to it ? */
1.1 (rth 03-May-99): #define TARGET_FORMAT \
1.1 (rth 03-May-99): (shl \
1.1 (rth 03-May-99): ? (sh_small ? "coff-shl-small" : "coff-shl") \
1.1 (rth 03-May-99): : (sh_small ? "coff-sh-small" : "coff-sh"))
1.12 (nickc 15-Nov-01): #else
1.12 (nickc 15-Nov-01): #define TARGET_FORMAT \
1.12 (nickc 15-Nov-01): (sh_small ? "coff-shl-small" : "coff-shl")
1.12 (nickc 15-Nov-01): #endif
1.12 (nickc 15-Nov-01):
As part of the change:
revision 1.12
date: 2001/11/15 21:28:54; author: nickc; state: Exp; lines: +7 -0
Update all uses of md_apply_fix to use md_apply_fix3. Make it a void function.
(in fact, it was the only change to that file at that time. This
disagrees completely with the ChangeLog entry:
* cgen.h, config/obj-coff.h, tc-*.h: Remove all definitions of
MD_APPLY_FIX3 and TC_HANDLE_FX_DONE.
)
sh-coff is a big endian target by current configury. LD knows this.
Even GAS more or less appears to know this. But naturally this code
generates object files tagged little-endian. No wonder we can't
disassemble them...
Is there some subtlety as to why I should not use !target_big_endian
there? It reduces the testsuite failures from grotesque to merely
upsetting.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
More information about the Binutils
mailing list