Re: Warnings in native MinGW32 build of GDB 7.8

Joel Brobecker
2014-08-13T17:42:32Z

> > > #include "defs.h"
> > > +#include "target.h" /* for 'enum target_xfer_status' */
> >
> > I can see enum target_xfer_status is used in this c file. This is good
> > to me.
>
> Not sure what you mean here. Do you agree with this change? If not,
> why not?

I think Yao was agreeing with the patch. I agree with the change
as well, so you can commit that part right away.

> > > /* Dynamic target-system-dependent parameters for GDB. */
> > > +#include "frame.h" /* for 'struct frame_id' */
> >
> > It is unclear to me why do we need this include?
>
> Because 'struct frame_id' is otherwise not defined, and I get warnings
> like this one:
>
> In file included from defs.h:631,
> from gdb.c:19:
> gdbarch.h:429: warning: parameter has incomplete type
> gdbarch.h:430: warning: parameter has incomplete type

I think we should fix gdbarch.h to include frame.h instead, which
effectively means adjusting gdbarch.sh. The solution you chose seems
to be relying on an indirect include, which we really really try
to avoid. Yao's question is a good example of one of the reasons
why we avoid that; but there is also the fact that not everyone
will need frame.h's declarations.

> > > --- gdb/target-dcache.c~0 2014-06-11 19:34:41.000000000 +0300
> > > +++ gdb/target-dcache.c 2014-08-09 16:17:42.244875000 +0300
> > > @@ -16,6 +16,7 @@
> > > along with this program. If not, see <http://www.gnu.org/licenses/>. */
> > >
> > > #include "defs.h"
> > > +#include "target.h" /* for 'enum target_xfer_status' */
> >
> > enum target_xfer_status isn't used in target-dcache.c. Do we really
> > need this?
>
> It is used in dcache.h which target-dcache.c includes:
>
> In file included from target-dcache.h:21,
> from target-dcache.c:19:
> dcache.h:42: warning: parameter has incomplete type

Same here, dcache.h should be the one including target.h.

--
Joel