On 07/08/2015 11:20 PM, Tom Lane wrote:
I wrote:
Heikki Linnakangas <[email protected]> writes:
Replace our hacked version of ax_pthread.m4 with latest upstream version.
Well, in fact that did not work. See gharial: it appears to have picked
the wrong thread flags.
And even more annoying, now that I've git pull'd, I find it's also broken
the build on my RHEL6 box:
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_ctl] Error 1
make[2]: *** [all-pg_ctl-recurse] Error 2
make[2]: *** Waiting for unfinished jobs....
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_receivexlog] Error 1
make[3]: *** Waiting for unfinished jobs....
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_basebackup] Error 1
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_recvlogical] Error 1
make[2]: *** [all-pg_basebackup-recurse] Error 2
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_dumpall] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [pg_rewind] Error 1
make[2]: *** [all-pg_rewind-recurse] Error 2
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_restore] Error 1
../../../src/interfaces/libpq/libpq.so: undefined reference to `pthread_sigmask'
collect2: ld returned 1 exit status
make[3]: *** [pg_dump] Error 1
make[2]: *** [all-pg_dump-recurse] Error 2
make[1]: *** [all-bin-recurse] Error 2
make: *** [all-src-recurse] Error 2
It appears the new improved macro doesn't bother with -pthread at all.
Previously I got this in Makefile.global:
PTHREAD_CFLAGS = -pthread -D_REENTRANT -D_THREAD_SAFE
-D_POSIX_PTHREAD_SEMANTICS
PTHREAD_LIBS = -lpthread
Now I get
PTHREAD_CFLAGS = -D_REENTRANT -D_THREAD_SAFE
-D_POSIX_PTHREAD_SEMANTICS
PTHREAD_LIBS =
and that simply doesn't work. I do not know why the buildfarm isn't
entirely red, but I'm dead in the water. Please revert this.
I'm debugging this ATM. You're probably seeing a failure similar to
shearwater. The problem seems to be that the earlier autoconf tests add
"-lrt" to LIBS, and that somehow pulls in pthread_join() and other
functions, but not pthread_sigmask(), even when not compiling with -pthread.
I'll dig a bit deeper, but I think that could be fixed by moving the
AX_PTHREAD call in the configure script earlier, or by temporarily
clearing LIBS before calling it.
- Heikki
--
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers