Here is the updated UnixWare threads patch. I need some help to set the
HAVE_POSIX_GETPWUID_R define from configure, but this will suffice for now.
This also includes my recommendation for the Compiler Bug issue.
Please Apply, and if one of the configure guru's can help here, I'd be most
appreciative.
LER
Index: src/port/thread.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/port/thread.c,v
retrieving revision 1.2
diff -u -r1.2 thread.c
--- src/port/thread.c 8 Aug 2003 03:09:56 -0000 1.2
+++ src/port/thread.c 8 Aug 2003 23:53:35 -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)
+ /*
+ * SUSv2/POSIX 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 23:53:35 -0000
@@ -1,5 +1,13 @@
+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'
+# the -Kno_host is temporary for a bug in the compiler. See -hackers
+# discussion on 7-8/Aug/2003.
+# when the 7.1.3UP3 or later compiler is out, we can do a version check.
+ CFLAGS='-O -Kinline,no_host -DHAVE_POSIX_GETPWUID_R'
+ THREAD_CFLAGS="-D_REENTRANT -K pthread -DHAVE_POSIX_GETPWUID_R"
+ NEED_REENTRANT_FUNC_NAMES=yes
fi
--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 972-414-9812 E-Mail: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749