diff --git a/configure.in b/configure.in index 6ff5cc4e51bc8757811d0525d86b4d6231d6706a..1ef0bd5de773edd194bd9a99c76f45a1f45fbd1b 100644 --- a/configure.in +++ b/configure.in @@ -521,7 +521,22 @@ if test "x$POCC" != xyes ; then AC_TYPE_OFF_T AC_TYPE_PID_T fi -AC_TYPE_SSIZE_T + +# Older versions of MinGW do not define ssize_t in sys/types +AC_MSG_CHECKING([for ssize_t]) +AC_CACHE_VAL(ac_cv_type_$1, +[AC_EGREP_CPP([ssize_t@<:@^a-zA-Z_0-9@:>@], +[#include <sys/types.h> +#if STDC_HEADERS +#include <stdlib.h> +#include <stddef.h> +#endif], [ac_cv_type_ssize_t=yes], [ac_cv_type_ssize_t=no])]) + +AC_MSG_RESULT([$ac_cv_type_ssize_t]) +if test $ac_cv_type_ssize_t = yes; then + AC_DEFINE(HAVE_SSIZE_T, 1, + [Define to 1 if the system has the type `ssize_t'.]) +fi dnl keyword "volatile" check AC_CACHE_CHECK(volatile declaration,timidity_cv_type_volatile, diff --git a/timidity/timidity.c b/timidity/timidity.c index 66bd151ff8335a4532d92f3c14daf50ae39faccc..f4cc65b926e3a6b744736596db56149825e82d44 100644 --- a/timidity/timidity.c +++ b/timidity/timidity.c @@ -5122,7 +5122,11 @@ static void interesting_message(void) static RETSIGTYPE sigterm_exit(int sig) { char s[4]; +#if defined(__MINGW32__) && !defined(HAVE_SSIZE_T) + int dummy; +#else ssize_t dummy; +#endif /* NOTE: Here, fprintf is dangerous because it is not re-enterance * function. It is possible coredump if the signal is called in printf's.