This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: For 2.12: sh-coff


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]