[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

Reply via email to