Re: 8.0.0beta2: gcc: unrecognized option `-pthreads' - Mailing list pgsql-general
From | Bruce Momjian |
---|---|
Subject | Re: 8.0.0beta2: gcc: unrecognized option `-pthreads' |
Date | |
Msg-id | 200409102357.i8ANvMJ08268@candle.pha.pa.us Whole thread Raw |
In response to | Re: 8.0.0beta2: gcc: unrecognized option `-pthreads' (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: 8.0.0beta2: gcc: unrecognized option `-pthreads'
|
List | pgsql-general |
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > No. The problem is that the test script just tries all options and if > > it doesn't error out, it uses it. Ideally we could test from configure > > and ingnore meaningless options but we don't know how yet. > > Drop any options that cause the compiler to write anything on stderr. OK, the configure test is: 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=yes], [acx_pthread_ok=no]) Seems we can't just jump in there and grab stderr so I added the following code to CVS which should do the trick. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: configure =================================================================== RCS file: /cvsroot/pgsql-server/configure,v retrieving revision 1.391 diff -c -c -r1.391 configure *** configure 10 Sep 2004 13:53:39 -0000 1.391 --- configure 10 Sep 2004 23:55:53 -0000 *************** *** 13325,13342 **** fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 echo "${ECHO_T}$acx_pthread_ok" >&6 - if test "x$acx_pthread_ok" = xyes; then - # we continue with more flags because Linux needs -lpthread - # for libpq builds on PostgreSQL. The test above only - # tests for building binaries, not shared libraries. - PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS" - PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" - fi done fi --- 13325,13356 ---- fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + if test "x$acx_pthread_ok" = xyes; then + # Don't use options that are ignored by the compiler. + # We find them by checking stderror. + cat >conftest.$ac_ext <<_ACEOF + int + main () + { + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if test "`(eval $ac_link 2>&1 >/dev/null)`" = ""; then + # we continue with more flags because Linux needs -lpthread + # for libpq builds on PostgreSQL. The test above only + # tests for building binaries, not shared libraries. + PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS" + PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" + else acx_pthread_ok=no + fi + fi + LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 echo "${ECHO_T}$acx_pthread_ok" >&6 done fi Index: config/acx_pthread.m4 =================================================================== RCS file: /cvsroot/pgsql-server/config/acx_pthread.m4,v retrieving revision 1.6 diff -c -c -r1.6 acx_pthread.m4 *** config/acx_pthread.m4 17 Aug 2004 15:19:09 -0000 1.6 --- config/acx_pthread.m4 10 Sep 2004 23:55:54 -0000 *************** *** 129,145 **** pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes], [acx_pthread_ok=no]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) - if test "x$acx_pthread_ok" = xyes; then - # we continue with more flags because Linux needs -lpthread - # for libpq builds on PostgreSQL. The test above only - # tests for building binaries, not shared libraries. - PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS" - PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" - fi done fi --- 129,159 ---- pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes], [acx_pthread_ok=no]) + if test "x$acx_pthread_ok" = xyes; then + # Don't use options that are ignored by the compiler. + # We find them by checking stderror. + cat >conftest.$ac_ext <<_ACEOF + int + main () + { + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if test "`(eval $ac_link 2>&1 >/dev/null)`" = ""; then + # we continue with more flags because Linux needs -lpthread + # for libpq builds on PostgreSQL. The test above only + # tests for building binaries, not shared libraries. + PTHREAD_LIBS=" $tryPTHREAD_LIBS $PTHREAD_LIBS" + PTHREAD_CFLAGS="$PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" + else acx_pthread_ok=no + fi + fi + LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) done fi
pgsql-general by date: