On Fri, Mar 30, 2012 at 10:35:41AM -0600, Eric Blake wrote: > We are so close to a release that we don't want to pull in a > gnulib submodule update and risk regressions, since there has > been a lot of other gnulib churn upstream. However, there are > a couple of gnulib issues that are worth fixing in isolation, > by applying local patches to gnulib. > > There was an upstream gnulib bug in maint.mk that rendered most > of our syntax checks ineffective (and fixing it flushed out a > minor bug in our code): > https://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00194.html > > There is still an upstream bug where gnulib uses the wrong type > for ssize_t on mingw; we need the fix now even though it has not > yet been accepted into gnulib: > https://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00188.html > > * gnulib/local/top/maint.mk.diff: Pick up upstream gnulib > maint.mk. > * gnulib/local/m4/ssize_t.m4.diff: Work around gnulib bug. > * src/libvirt.c: Remove unused header. > --- > > Yes, I know reading a diff of a diff is hard. > > Any objections to this? I'd like to apply it before RC2 is built. > > I am not set up to easily test if the ssize_t fix works on mingw. > I _did_ test it on Linux, including where I primed the configure > cache to intentionally treat ssize_t as missing, so I'm confident > the replacement mechanism works; I just don't know if it will > silence the warnings that Dan reported here: > https://www.redhat.com/archives/libvir-list/2012-March/msg01273.html > > And we still need _part_ of that patch (the conversion from fprintf > to asprintf, in order to support %zd in the first place). > > gnulib/local/m4/ssize_t.m4.diff | 34 ++++++++++++++++++++++++++++++++++ > gnulib/local/top/maint.mk.diff | 32 ++++++++++++++++++++++++++++++++ > src/libvirt.c | 2 -- > 3 files changed, 66 insertions(+), 2 deletions(-) > create mode 100644 gnulib/local/m4/ssize_t.m4.diff > create mode 100644 gnulib/local/top/maint.mk.diff > > diff --git a/gnulib/local/m4/ssize_t.m4.diff b/gnulib/local/m4/ssize_t.m4.diff > new file mode 100644 > index 0000000..d0ae286 > --- /dev/null > +++ b/gnulib/local/m4/ssize_t.m4.diff > @@ -0,0 +1,34 @@ > +diff --git i/m4/ssize_t.m4 w/m4/ssize_t.m4 > +index 209d64c..5ea72a1 100644 > +--- i/m4/ssize_t.m4 > ++++ w/m4/ssize_t.m4 > +@@ -1,4 +1,4 @@ > +-# ssize_t.m4 serial 5 (gettext-0.18.2) > ++# ssize_t.m4 serial 6 (gettext-0.18.2) > + dnl Copyright (C) 2001-2003, 2006, 2010-2012 Free Software Foundation, Inc. > + dnl This file is free software; the Free Software Foundation > + dnl gives unlimited permission to copy and/or distribute it, > +@@ -17,7 +17,21 @@ AC_DEFUN([gt_TYPE_SSIZE_T], > + return !x;]])], > + [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) > + if test $gt_cv_ssize_t = no; then > +- AC_DEFINE([ssize_t], [int], > +- [Define as a signed type of the same size as size_t.]) > ++ AC_CACHE_CHECK([for rank of size_t], [gt_cv_size_t_rank], > ++ [AC_COMPILE_IFELSE( > ++ [AC_LANG_PROGRAM( > ++ [[#include <sys/types.h> > ++ #ifdef __cplusplus > ++ extern "C" { > ++ #endif > ++ int foo(unsigned long bar); > ++ int foo(size_t bar); > ++ #ifdef __cplusplus > ++ } > ++ #endif > ++ ]])], > ++ [gt_cv_size_t_rank=long], [gt_cv_size_t_rank=int])]) > ++ AC_DEFINE_UNQUOTED([ssize_t], [$gt_cv_size_t_rank], > ++ [Define as a signed type of the same size and rank as size_t.]) > + fi > + ]) > diff --git a/gnulib/local/top/maint.mk.diff b/gnulib/local/top/maint.mk.diff > new file mode 100644 > index 0000000..85e97ae > --- /dev/null > +++ b/gnulib/local/top/maint.mk.diff > @@ -0,0 +1,32 @@ > +diff --git i/top/maint.mk w/top/maint.mk > +index 4cbd5f4..2228a37 100644 > +--- i/top/maint.mk > ++++ w/top/maint.mk > +@@ -279,7 +279,7 @@ define _sc_search_regexp > + if test -n "$$files"; then \ > + if test -n "$$prohibit"; then \ > + grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \ > +- | grep -vE "$${exclude-^$$}" \ > ++ | grep -vE "$${exclude:-^$$}" \ > + && { msg="$$halt" $(_sc_say_and_exit) } || :; \ > + else \ > + grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \ > +@@ -455,7 +455,8 @@ sc_prohibit_quotearg_without_use: > + > + # Don't include quote.h unless you use one of its functions. > + sc_prohibit_quote_without_use: > +- @h='quote.h' re='\<quote(_n)? *\(' $(_sc_header_without_use) > ++ @h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \ > ++ $(_sc_header_without_use) > + > + # Don't include this header unless you use one of its functions. > + sc_prohibit_long_options_without_use: > +@@ -1332,7 +1333,7 @@ alpha beta stable: $(local-check) writable-files $(submodule-checks) > + $(MAKE) vc-diff-check > + $(MAKE) news-check > + $(MAKE) distcheck > +- $(MAKE) dist XZ_OPT=-9ev > ++ $(MAKE) dist > + $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ > + $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ > + > diff --git a/src/libvirt.c b/src/libvirt.c > index 8bca16d..16d1fd5 100644 > --- a/src/libvirt.c > +++ b/src/libvirt.c > @@ -45,8 +45,6 @@ > #include "virrandom.h" > #include "viruri.h" > > -#include <ctype.h> > - > #ifndef WITH_DRIVER_MODULES > # ifdef WITH_TEST > # include "test/test_driver.h" ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list