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: Eli Zaretskii <eliz at gnu dot org>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: yao at codesourcery dot com, gdb-patches at sourceware dot org
- Date: Wed, 13 Aug 2014 21:02:45 +0300
- 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> <20140813174227 dot GF4881 at adacore dot com>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> Date: Wed, 13 Aug 2014 10:42:27 -0700
> From: Joel Brobecker <brobecker@adacore.com>
> Cc: Yao Qi <yao@codesourcery.com>, gdb-patches@sourceware.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.
I can do the 1st and the 3rd parts, but I'd prefer not to touch
gdbarch.sh. Could one of you please do that?
TIA