[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] ssize_t: fix definition on mingw
From: |
Eric Blake |
Subject: |
[PATCH] ssize_t: fix definition on mingw |
Date: |
Thu, 29 Mar 2012 16:47:57 -0600 |
We were blindly defining ssize_t to int. On mingw64, this is the
correct size, but the wrong rank, which leads gcc to issue warnings
for %zd printf directives.
* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Match rank of size_t.
Signed-off-by: Eric Blake <address@hidden>
---
Bruno, is this okay to apply?
ChangeLog | 5 +++++
m4/ssize_t.m4 | 20 +++++++++++++++++---
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d74544a..768ab46 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-29 Eric Blake <address@hidden>
+
+ ssize_t: fix definition on mingw
+ * m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Match rank of size_t.
+
2012-03-25 Bruno Haible <address@hidden>
Tests for module 'localeconv'.
diff --git a/m4/ssize_t.m4 b/m4/ssize_t.m4
index 209d64c..5ea72a1 100644
--- a/m4/ssize_t.m4
+++ b/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
])
--
1.7.7.6