Fix build of Perl-using modules of Windows
authorPeter Eisentraut <peter@eisentraut.org>
Mon, 16 Dec 2019 10:48:01 +0000 (11:48 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Mon, 16 Dec 2019 10:48:01 +0000 (11:48 +0100)
Commit f14413b684d57211068ee56ee04695efcc87a23a broke the build of
Perl-using modules on Windows.

Perl might have its own definitions of uid_t and gid_t, so we hide
ours, but then we can't use ours in our header files such as port.h
which don't see the Perl definition.

Hide our definition of getpeereid() on Windows in Perl-using modules,
using PLPERL_HAVE_UID_GID define.  That means we can't portably use
getpeeruid() is such modules right now, but there is no need anyway.

src/include/port.h

index 9567590581bca0596fc68aca9f8d1cd369cf2d07..aec5281e43ba7be41fb072e228e4bade59560b33 100644 (file)
@@ -355,8 +355,11 @@ extern int fls(int mask);
 #endif
 
 #ifndef HAVE_GETPEEREID
+/* On Windows, Perl might have incompatible definitions of uid_t and gid_t. */
+#ifndef PLPERL_HAVE_UID_GID
 extern int getpeereid(int sock, uid_t *uid, gid_t *gid);
 #endif
+#endif
 
 #ifndef HAVE_ISINF
 extern int isinf(double x);