This is the mail archive of the gdb@sourceware.org mailing list for the GDB 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: m68k structure return register


On Wed, Sep 19, 2007 at 12:24:27PM +0400, Vladimir Prus wrote:
> > Group I -- monitor.mt -- just m68k-tdep.c
> > 
> >         1. m68k-*-aout*                                 a1
> >         2. m68k-*-coff*                                 a1
> >         3. m68k-*-elf*                                  a0
> >         6. m68k-*-uclinuxoldabi*                        a0
> >         7. m68k-*-uclinux*                              a1
> >         9. m68k-*-rtems*                                a0
> > 
> > In gdb, all target here use the register set in m68k_gdbarch_init -- 
> > currently A1, which register is wrong for half of targets. I'll get to this
> > group shortly.

Which of these are ELF?  I know RTEMS is; I suspect both uclinuxoldabi
and uclinux are.  You can differentiate based on ELF-ness in
m68k_gdbarch_init.  Lots of other targets do that too.  Then you can
set the default to a1 for non-ELF and a0 for ELF, and that will fix
m68k-elf and m68k-rtems without breaking m68k-aout or m68k-coff.

m68k-uclinux and m68k-uclinuxoldabi are harder.  Do you know how old
m68k-uclinuxoldabi is, and whether we need to support it in GDB?
If not, you can treat it just like m68k-linux.  It is likely that
the Linux OS/ABI sniffer will already accept uClinux binaries.

> > The problem is therefore, group I. Notably, for m68k-elf gcc uses
> > a0, whereas gdb assumes a1. And for m68k-elf, we cannot set
> > any osabi sniffer. I think that nowdays m68k-elf is probably the most
> > important target in that group.
> > 
> > I would suggest the following:
> > 
> > 1. Change gdb's default to use a0 register, so that bare-metal works.
> > 2. If possible, add osabi sniffers to uclinux, openbsdb and rtems, that
> > will cause gdb to use a1. 

OpenBSD is easy.  Shouldn't RTEMS use a0, from your tables above?

-- 
Daniel Jacobowitz
CodeSourcery


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