This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] PPC ABI compliance fix
On Mar 22, 3:06pm, Elena Zannoni wrote:
> > > +ppc_sysv_abi_use_struct_convention (int gcc_p, struct type *value_type)
> > > +{
> > > + return (TYPE_LENGTH (value_type) > 8);
> > > +}
> > > +
> > > /* round2 rounds x up to the nearest multiple of s assuming that s is a
> > > power of 2 */
> >
> > Should this live in rs6000-tdep.c?
>
> Yes, There is a FIXME about that in the file. I am not sure why
> sysv_push_arguments is in that file as well. I didn't want to change
> it in case there was some real technical problem.
>
> Maybe Kevin knows why?
There's no real technical problem. I wrote
ppc_sysv_abi_push_arguments() for Linux, so it ended up in the Linux
file. I don't think there would be any real problem with moving it to
rs6000-tdep.c, but I would prefer not to since rs6000-tdep.c deals
more with the PowerOpen ABI (in addition to generic arch considerations).
In my opinion, they probably belong in a ppc-sysv-abi-tdep.c file.
But at the moment, there's no real incentive for creating this file
(aside from making things somewhat more tidy) because ppc-linux-tdep.c
needs to be a part of all GDB builds that target Power / PowerPC.
I've been thinking about Andrew's comments from a week or so ago in
the discussion regarding x86-64-linux-tdep.c. As Andrew noted at the
time, the gdbarch machinery that we now have isn't set up to do
inheritance, and so as a consequence, we end up with the situation
that we have with the ppc*-tdep.c files in which you need include
linux support in a native build for AIX. It would be nice if we could
restructure things so that there'd be a generic ppc-tdep.c file which
knows nothing about ABIs or OS considerations. Under that, you'd have
ppc-poweropen-abi.c (or whatever IBM is calling their ABI these days)
and ppc-sysv-abi-tdep.c and perhaps even ppc-sysv-eabi-tdep.c. Below
that you'd have the various OS specific tdep files. Unfortunately,
we can't do it yet because the gdbarch machinery won't allow it.
Kevin