[RFC] Re: [PATCH v2] xtensa: initialize call_abi in xtensa_tdep

Joel Brobecker
2015-08-20T13:14:45Z

> I think you missed or ignored one comment about the fact that
> the code I am seeing in current xtensa-tdep.h is not what your patch
> says. So it seems to me you are sending a patch that doesn't seem
> to be applying to master.
>
> I would also be beneficial to explore what I was trying to explain
> regarding the fact that determining the proper ABI should be done
> on the fly, rather than hardcoded. This is particularly true with
> the fact that changing the hardcoded values involves adapting
> the contents of a file, which is not user-friendly, and nearly
> impossible for anyone but a knowledgeable GDB contributor.

You answered in the other email:
| I agree with that, but currently we can't distinguish executables with
| different call ABI.

Odd; that means that the linker would not reject the link of
objects that use different calling conventions? Wow, better be
careful!

In any case, I think what should really be done, if it has to be
hard-set in the debugger, is use a configure command-line option.
Or use a GDB setting "set xtensa call-abi [...]".

In the meantime, I have no strong objection to this code going in
on the grounds that it doesn't really make things all that worse.
But given that this is going against what I would recommend, give it
another week so that other Maintainers have a chance to comment
as well if they disagree with letting this in.

> > ---
> > Changes v1 -> v2:
> > - fix call_abi code formatting.
> >
> > gdb/xtensa-tdep.h | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/gdb/xtensa-tdep.h b/gdb/xtensa-tdep.h
> > index adacaf8..ff090f3 100644
> > --- a/gdb/xtensa-tdep.h
> > +++ b/gdb/xtensa-tdep.h
> > @@ -246,7 +246,9 @@ struct gdbarch_tdep
> > .spill_location = -1, \
> > .spill_size = (spillsz), \
> > .unused = 0, \
> > - .call_abi = 0, \
> > + .call_abi = (XSHAL_ABI == XTHAL_ABI_CALL0 \
> > + ? CallAbiCall0Only \
> > + : CallAbiDefault), \
> > .debug_interrupt_level = XCHAL_DEBUGLEVEL, \
> > .icache_line_bytes = XCHAL_ICACHE_LINESIZE, \
> > .dcache_line_bytes = XCHAL_DCACHE_LINESIZE, \
> > --
> > 1.8.1.4
>
> --
> Joel

--
Joel