public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Vladimir Prus <vladimir@codesourcery.com>
Cc: gdb@sources.redhat.com
Subject: Re: m68k structure return register
Date: Wed, 19 Sep 2007 14:06:00 -0000	[thread overview]
Message-ID: <20070919133136.GA29941@caradoc.them.org> (raw)
In-Reply-To: <200709191224.28030.vladimir@codesourcery.com>

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

  reply	other threads:[~2007-09-19 13:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-20  9:25 Vladimir Prus
2007-09-19 12:46 ` Vladimir Prus
2007-09-19 14:06   ` Daniel Jacobowitz [this message]
2007-09-20  9:06     ` Ralf Corsepius
2007-09-30 20:40     ` Vladimir Prus
     [not found]       ` <20070930204008.GA15765@caradoc.them.org>
2007-10-05 12:31         ` Vladimir Prus
2007-10-05 20:36           ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070919133136.GA29941@caradoc.them.org \
    --to=drow@false.org \
    --cc=gdb@sources.redhat.com \
    --cc=vladimir@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).