This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Warnings in native MinGW32 build of GDB 7.8
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: Yao Qi <yao at codesourcery dot com>, gdb-patches at sourceware dot org
- Date: Wed, 13 Aug 2014 10:42:27 -0700
- Subject: Re: Warnings in native MinGW32 build of GDB 7.8
- Authentication-results: sourceware.org; auth=none
- References: <83r40plpp3 dot fsf at gnu dot org> <53EAE47A dot 6030700 at codesourcery dot com> <83k36cifeq dot fsf at gnu dot org>
> > > #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