The attached diff against 7.4.2 incorporates Joe Conway's checks for getqwuid_r() has 4/5 arguments with a pthread compile autoconf check that I found a while back in the gnu autoconf archives.
I think we should change alltogether to that pthread check.
Jan
[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.
Wes
---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
-- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== [EMAIL PROTECTED] #
threadsafe-libpq-742.diff.gz
Description: GNU Zip compressed data
---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings