target-delegates.c needs some TLC [was Re: [OB PATCH] target.h (to_traceframe_info): Fix TARGET_DEFAULT_RETURN]

Doug Evans
2014-03-06T05:20:56Z

On Mon, Mar 3, 2014 at 5:36 PM, Yao Qi <yao@codesourcery.com> wrote:
> On 03/04/2014 09:18 AM, Hui Zhu wrote:
>> I cannot understand about this OB is not right. I have 2 questions to you:
>> 1. Before my patch, does target-delegates.c that generated by make-target-delegates is same with current target-delegates.c?
>
> No, as I said, I forgot to re-generate target-delegates.c.

Hmmm....

I don't even see target-delegates.c in Makefile.in. That feels like a
bug. [Could be blind of course. :-)]
I realize there's a comment in target-delegates.c that says how to
regenerate it, but these kind of things are part of what makefiles are
for.

While I realize we don't want to require perl for building gdb (and I
for one would never advocate it), I wonder if we can do at least a bit
better.
I'm not sure I'd want to require perl for --enable-maintainer-mode
(which is a common trigger for enabling in makefiles the appropriate
rules to auto-regenerate checked-in machine-generated files), but it's
one thought. Failing using --enable-maintainer-mode for this I think
it's a requirement to add a different --enable-foo option to turn on
the necessary makefile rules to regenerate target-delegates.c at build
time as needed.

Another thought would be to at least have makefile issue a warning if
target-delegates.c is out of date, perhaps predicated on
--enable-maintainer-mode, or some other configure option, since doing
so by default is problematic otherwise.