[EMAIL PROTECTED] wrote: > On 3/25/04 7:27 AM, "Jan Wieck" <[EMAIL PROTECTED]> wrote: > > > One other problem I am looking into (and why I tried to compile with > > thread safety in the first place) is that this somehow did not turn on > > -D_REENTRANT in the CFLAGS for libpq. And that leads to libpq not using > > the threadsafe definition of errno, leading to serious communication > > trouble in the end (pqReadData() failing with ENOENT while the real > > error is a harmless EAGAIN from a nonblocking recv()). > > This sounds like the problem I just solved late yesterday, except that I'm > seeing it manifest itself in ecpglib with C programs build using ecpg. I had > absolutely no error handling. The error flag was never set. I put some > debug code into the various library functions and found it was setting the > error code in sqlca - but in a different copy of sqlca than was active. > > The root problem turns out to be that configure is setting -pthread instead > of -lpthread in config.status. I manually changed the config.status line > > s,@THREAD_LIBS@,-pthread,;t t > > To > > s,@THREAD_LIBS@,-lpthread,;t t > > And everything appears to be working now. I don't see -D_REENTRANT being > set, but everything appears to work now. > > Let me know if this solves your test case also.
I assume you were using 7.4.0, rather than 7.4.2. Current CVS has in template/solaris: # tools/thread/thread_test must be run # -D_POSIX_PTHREAD_SEMANTICS enables 5-arg getpwuid_r, among other things if test "$GCC" = yes then THREAD_CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS" THREAD_LIBS="-pthread" else THREAD_CPPFLAGS="-mt -D_POSIX_PTHREAD_SEMANTICS" THREAD_LIBS="-lpthread" fi That should work for you. -- Bruce Momjian | http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org