From: Bruno Haible Date: Sun, 23 Aug 2020 23:38:14 +0000 (+0200) Subject: AC_TYPE_PID_T: Define pid_t correctly on 64-bit native Windows. X-Git-Tag: v2.69c~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da4c468de90c941506ab8c67c586810151bb899f;p=thirdparty%2Fautoconf.git AC_TYPE_PID_T: Define pid_t correctly on 64-bit native Windows. Reported at . * lib/autoconf/types.m4 (AC_TYPE_PID_T): Define pid_t to '__int64' on 64-bit native Windows, and to 'int' otherwise. --- diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4 index 543a638e..d28a8efe 100644 --- a/lib/autoconf/types.m4 +++ b/lib/autoconf/types.m4 @@ -610,7 +610,32 @@ AN_IDENTIFIER([ssize_t], [AC_TYPE_SSIZE_T]) AC_DEFUN([AC_TYPE_SSIZE_T], [AC_CHECK_TYPE(ssize_t, int)]) AN_IDENTIFIER([pid_t], [AC_TYPE_PID_T]) -AC_DEFUN([AC_TYPE_PID_T], [AC_CHECK_TYPE(pid_t, int)]) +AC_DEFUN([AC_TYPE_PID_T], +[ + AC_CHECK_TYPE([pid_t], + [], + [dnl On 64-bit native Windows, define it to the equivalent of 'intptr_t' + dnl (= 'long long' = '__int64'), because that is the return type + dnl of the _spawnv* functions + dnl + dnl and the argument type of the _cwait function + dnl . + dnl Otherwise (on 32-bit Windows and on old Unix platforms), define it + dnl to 'int'. + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #if defined _WIN64 && !defined __CYGWIN__ + LLP64 + #endif + ]]) + ], + [ac_pid_type='int'], + [ac_pid_type='__int64']) + AC_DEFINE_UNQUOTED([pid_t], [$ac_pid_type], + [Define as a signed integer type capable of holding a process identifier.]) + ], + [AC_INCLUDES_DEFAULT]) +]) AN_IDENTIFIER([off_t], [AC_TYPE_OFF_T]) AC_DEFUN([AC_TYPE_OFF_T], [AC_CHECK_TYPE(off_t, long int)])