Merge commit 'a39d4083cab589d7cd6a13e8a4b8db8875261d75'
[gnulib.git] / m4 / ssize_t.m4
index c97ab2e..fbe1d06 100644 (file)
@@ -1,22 +1,23 @@
-#serial 1
+# ssize_t.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2001-2003, 2006, 2010-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
 
-AC_PREREQ(2.14a)
+dnl From Bruno Haible.
+dnl Test whether ssize_t is defined.
 
-dnl This is a specialization of AC_CHECK_TYPE applied to `ssize_t' with
-dnl the difference that it also includes unistd.h on systems that have it.
-dnl On Fujitsu UXP/V systems ssize_t is defined in unistd.h.
-AC_DEFUN(AC_TYPE_SSIZE_T,
-  [
-    AC_CHECK_HEADERS(unistd.h)
-    AC_CHECK_TYPE(ssize_t, int,
-      [
-#include <sys/types.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-      ]
-  )])
+AC_DEFUN([gt_TYPE_SSIZE_T],
+[
+  AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <sys/types.h>]],
+          [[int x = sizeof (ssize_t *) + sizeof (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.])
+  fi
+])