Re: [BUGS] 8.0.0beta1: -lpthread missing
От | Martin Münstermann |
---|---|
Тема | Re: [BUGS] 8.0.0beta1: -lpthread missing |
Дата | |
Msg-id | 411CA643.8050900@betrusted.com обсуждение исходный текст |
Ответ на | Re: [BUGS] 8.0.0beta1: -lpthread missing (Martin Münstermann <mmuenstermann@betrusted.com>) |
Ответы |
Missing Manuals
|
Список | pgsql-patches |
Hi! Martin Münstermann wrote: >> OK, we now have thread compile failure reports on Debian and Slackware. >> >> The config/acx_pthread.m4 script basically tests these: >> >> acx_pthread_flags=3D"pthreads none -Kthread -kthread lthread -pthread >> -pthreads -mthreads pthread --thread-safe -mt pthread-config" >> =09 >> in that order and exits once it finds the first one that can >> compile/link this: >> >> AC_TRY_LINK([#include <pthread.h>], >> [pthread_t th; pthread_join(th, 0); >> pthread_attr_init(0); pthread_cleanup_push(0, 0); >> pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], >> [acx_pthread_ok=3Dyes]) >> >> Now, the big question is why -pthread can compile/link this successfully >> but -pthread isn't enough to build a library that uses threads. > > > I suspect that on Solaris, without "-lpthread" the pthread-stubs in > /usr/lib/libc.so might be called at runtime instead of the functional > ones in libpthread.so. > > Could this easily be checked? I can confirm this suspect for Solaris8/gcc 3.2.3. How to reproduce it: Add a line like printf("### NOTE: check_sigpipe_handler called.\n"); to check_sigpipe_handler() in fe-secure.c and rebuild libpq.so. The line is only dumped out (indicating that check_sigpipe_handler() is being called), when the library is linked with -lpthread. Without -lpthread no complains from the compiler or linker, but check_sigpipe_handler() is not called, because the stub of pthread_once() in libc.so does nothing. --> We need -lpthread on solaris, too. Regards, Martin
В списке pgsql-patches по дате отправления: