Index: src/port/threads.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/threads.c,v
retrieving revision 1.2
diff -u -r1.2 threads.c
--- src/port/threads.c	4 Aug 2003 00:43:33 -0000	1.2
+++ src/port/threads.c	8 Aug 2003 02:52:29 -0000
@@ -40,13 +40,18 @@
 pqGetpwuid(uid_t uid, struct passwd * resultbuf, char *buffer,
 		   size_t buflen, struct passwd ** result)
 {
-#if defined(USE_THREADS) && defined(HAVE_GETPWUID_R)
+#if defined(USE_THREADS) && defined(HAVE_GETPWUID_R) && !defined(HAVE_POSIX_GETPWUID_R)
 
 	/*
 	 * broken (well early POSIX draft) getpwuid_r() which returns 'struct
 	 * passwd *'
 	 */
 	*result = getpwuid_r(uid, resultbuf, buffer, buflen);
+#elsif defined(USE_THREADS) && defined(HAVE_GETPWUID_R) && defined(HAVE_POSIX_GETPWUID_R)
+	/*
+	 * current POSIX / SUSv2 getpwuid_r()
+	 */
+	return getpwuid_r(uid,resultbuf,buffer,buflen,result);
 #else
 	/* no getpwuid_r() available, just use getpwuid() */
 	*result = getpwuid(uid);
Index: src/template/unixware
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/template/unixware,v
retrieving revision 1.11
diff -u -r1.11 unixware
--- src/template/unixware	4 Sep 2002 22:54:18 -0000	1.11
+++ src/template/unixware	8 Aug 2003 02:52:29 -0000
@@ -1,5 +1,11 @@
+SUPPORTS_THREADS=yes
 if test "$GCC" = yes; then
-  CFLAGS=-O2
+  CFLAGS="-O2 -DHAVE_POSIX_GETPWUID_R"
+  THREAD_CFLAGS="-pthread -D_REENTRANT"
+  NEED_REENTRANT_FUNC_NAMES=yes
 else
-  CFLAGS='-O -K inline'
+  CFLAGS='-O -K inline -DHAVE_POSIX_GETPWUID_R'
+  THREAD_CFLAGS="-D_REENTRANT -K pthread -DHAVE_POSIX_GETPWUID_R"
+  NEED_REENTRANT_FUNC_NAMES=yes
 fi
+
