Hello!

Bruce Momjian wrote:
Robert Treat wrote:

`pthread_once'
../../../src/interfaces/libpq/libpq.so: undefined reference to
`pthread_key_create'
../../../src/interfaces/libpq/libpq.so: undefined reference to
`pthread_setspecific'
collect2: ld returned 1 exit status



Please describe a way to repeat the problem.   Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
# ./configure --prefix=/opt/postgresql-800beta1 --enable-thread-safety
# make


If you know how this problem might be fixed, list the solution below: --------------------------------------------------------------------- The binaries must be linked with pthread (-lpthread).


Can you take a look at the thread below and report back if that fixes your problem? http://archives.postgresql.org/pgsql-hackers/2004-08/msg00525.php

Yes, adding -lpthread to PTHREAD_LIBS and rebuilding solved the problem.
Note: when doing so, libpq.so is built with -lpthread, PTHREAD_LIBS is *not* used in the makefiles of the client binaries like initdb and psql.


I looked at that.  The line that does the tests is in
config/acx_pthread.m4:
        
        acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread
        -pthreads -mthreads pthread --thread-safe -mt pthread-conf ig"

so you should see that list tried.  Does that help?

I am majorly concerned that Slackware has the same problem as Unixware,
meaning that if you use threading in the lib, you now need the flags on
every applicaiton that uses the lib.

At least on debian this is not the case (see above):
-lpthread is used when building libpq.so.3.2.
So the shared library contains a dependency on libpthread.so.
Then the client apps do not need a -lpthread at build time. The dynamic linker will resolve the dependency on libpthread.so (via libpq.so) at runtime.


Regards,
 Martin


---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to