[dpdk-dev] Build is broken in dpdk-next-net

Gaëtan Rivet gaetan.rivet at 6wind.com
Sat Mar 31 17:09:47 CEST 2018


On Sat, Mar 31, 2018 at 09:33:43AM -0400, Neil Horman wrote:
> On Fri, Mar 30, 2018 at 10:47:09PM +0800, Tonghao Zhang wrote:
> > I rebuild it on ubuntu 17.10 and cash it. I use the 'RTE_SET_USED' to fix it.
> > 
> > 
> > diff --git a/lib/librte_vhost/fd_man.c b/lib/librte_vhost/fd_man.c
> > index 771675718..f11803191 100644
> > --- a/lib/librte_vhost/fd_man.c
> > +++ b/lib/librte_vhost/fd_man.c
> > @@ -279,7 +279,8 @@ fdset_pipe_read_cb(int readfd, void *dat __rte_unused,
> >                    int *remove __rte_unused)
> >  {
> >         char charbuf[16];
> > -       read(readfd, charbuf, sizeof(charbuf));
> > +       int r = read(readfd, charbuf, sizeof(charbuf));
> > +       RTE_SET_USED(r);
> >  }
> > 
> >  void
> > @@ -319,5 +320,6 @@ fdset_pipe_init(struct fdset *fdset)
> >  void
> >  fdset_pipe_notify(struct fdset *fdset)
> >  {
> > -       write(fdset->u.writefd, "1", 1);
> > +       int r = write(fdset->u.writefd, "1", 1);
> > +       RTE_SET_USED(r);
> >  }
> > 
> 
> A better option might be to use _Pragma
> 
> Something like this perhaps
> 
> #define ALLOW_UNUSED(x) \
> _Pragma(push) \
> _Pragma(diagnostic ignored "-Wunused-result") \
> #x;\
> _Pragma(pop)
> 
> This is of course untested, so it probably needs some tweaking, but this method
> avoids the need to declare an additional stack variable, which i don't think can
> be eliminated due to the cast.  I believe that this method should also work
> accross compilers (the gcc and clang compilers support this, and i think the
> intel compiler should as well)
> 
> Neil
> 

It would be nice to avoid the definition of a useless variable.
An alternative could be

   if (read() < 0) {
       /* Failure here is acceptable for such and such reason. */
   }

to ensure all-around compatibility, and the definition or another macro.
Just a suggestion.

-- 
Gaëtan Rivet
6WIND


More information about the dev mailing list