build: fix mingw ssize_t, syntax check

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.
* cfg.mk
(exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF): Exempt
gnulib local files.
This commit is contained in:
Eric Blake 2012-03-30 10:28:03 -06:00
parent ecde15910a
commit 1012dc2933
4 changed files with 67 additions and 3 deletions

2
cfg.mk
View File

@ -769,7 +769,7 @@ exclude_file_name_regexp--sc_prohibit_close = \
(\.p[yl]$$|^docs/|^(src/util/virfile\.c|src/libvirt\.c)$$)
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
(^tests/qemuhelpdata/|\.(gif|ico|png)$$)
(^tests/qemuhelpdata/|\.(gif|ico|png|diff)$$)
_src2=src/(util/command|libvirt|lxc/lxc_controller)
exclude_file_name_regexp--sc_prohibit_fork_wrappers = \

View File

@ -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
])

View File

@ -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=$@

View File

@ -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"