From 1012dc2933378640ac0ab1025a4fec2fc8c6f84c Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 30 Mar 2012 10:28:03 -0600 Subject: [PATCH] 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. --- cfg.mk | 2 +- gnulib/local/m4/ssize_t.m4.diff | 34 +++++++++++++++++++++++++++++++++ gnulib/local/top/maint.mk.diff | 32 +++++++++++++++++++++++++++++++ src/libvirt.c | 2 -- 4 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 gnulib/local/m4/ssize_t.m4.diff create mode 100644 gnulib/local/top/maint.mk.diff diff --git a/cfg.mk b/cfg.mk index bf7274f01d..71e9a1d901 100644 --- a/cfg.mk +++ b/cfg.mk @@ -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 = \ diff --git a/gnulib/local/m4/ssize_t.m4.diff b/gnulib/local/m4/ssize_t.m4.diff new file mode 100644 index 0000000000..d0ae2861d4 --- /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 ++ #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 0000000000..85e97ae111 --- /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='\ - #ifndef WITH_DRIVER_MODULES # ifdef WITH_TEST # include "test/test_driver.h"