[Libvir] gnulib: take2, trunk-relative patch

Daniel Veillard veillard at redhat.com
Wed Dec 5 21:00:17 UTC 2007


On Wed, Dec 05, 2007 at 09:51:15PM +0100, Jim Meyering wrote:
> "Richard W.M. Jones" <rjones at redhat.com> wrote:
> > Jim, to use the gnulib <string.h> replacement with GCC 4.1.2 compiled
> > under MinGW, I needed to patch lib/string.h as follows:
> >
> > --- gnulib/lib/string.h~        2007-12-05 18:29:29.000000000 +0000
> > +++ gnulib/lib/string.h 2007-12-05 19:36:22.000000000 +0000
> > @@ -280,7 +280,7 @@
> >     See also strtok_r().  */
> >  #if 1
> >  # if ! 0
> > -extern char *strsep (char **restrict __stringp, char const *restrict
> > __delim);
> > +extern char *strsep (char **__restrict__ __stringp, char const
> > *__restrict__ __delim);
> >  # endif
> >  # if defined GNULIB_POSIXCHECK
> >  #  undef strsep
> >
> > This seems to be because C99's restrict keyword is not enabled by
> > default.  You need to pass the -std=c99 parameter to the compiler to
> > get this.
> 
> Thanks for the report.
> That file is generated from string.in.h, based on
> settings determined at configure time.
> 
> And one of the autoconf checks performed for the string module
> is to require the AC_C_RESTRICT macro which is supposed to
> detect which flavor of restrict to use.  Then it puts the appropriate
> definition of e.g.
> 
> #define restrict __restrict__
> 
> in config.h.
> 
> Ahh...  I've got it.
> There are a bunch of files that don't include config.h.
> 
> There's a rule in "autoconf" land saying that
> nearly every .c file should include "config.h" before anything else.
> Most of the time people don't notice when it's forgotten, but
> porting to "different" systems highlights the trouble.
> 
> You can list the files that include string.h yet do *not* include config.h,
> 
>     git-grep -l 'include <string\.h>'|xargs grep -L config.h
> 
> And here's a proposed patch to fix those.
> There may well be others, but this should solve your build failure:
> 
> Include "config.h".
> 
> * qemud/event.c: Likewise.
> * src/buf.c: Likewise.
> * src/hash.c: Likewise.
> * src/nodeinfo.c: Likewise.
> * src/openvz_conf.c: Likewise.
> * src/proxy_internal.c: Likewise.
> * src/virterror.c: Likewise.
> * src/xmlrpc.c: Likewise.
> * src/xs_internal.c: Likewise.
> * tests/conftest.c: Likewise.
> * tests/xmlrpctest.c: Likewise.

  Hum, right, that should be commited to CVS, this makes sense even
if gnulib is not in yet,

  thanks !

Daniel
  
-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/




More information about the libvir-list mailing list