Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream
Дата
Msg-id 559D8887.6020005@iki.fi
обсуждение исходный текст
Ответ на Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
On 07/08/2015 11:20 PM, Tom Lane wrote:
> I wrote:
>> Heikki Linnakangas <heikki.linnakangas@iki.fi> 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



В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream