diff options
author | Bruce Momjian | 2004-08-12 16:39:50 +0000 |
---|---|---|
committer | Bruce Momjian | 2004-08-12 16:39:50 +0000 |
commit | b218a5e67e28d756bfca59bd763af278b7cb001d (patch) | |
tree | b47f3d7dae1d4e225f1fda62665f62593eed56b6 | |
parent | d778eb62f732bf3144e76a67faa6f93d88d30a7b (diff) |
Be more aggressive about adding flags to thread compiles. The configure
test only tests for building a binary, not building a shared library.
On Linux, you can build a binary with -pthread, but you can't build a
binary that uses a threaded shared library unless you also use -pthread
when building the binary, or adding -lpthread to the shared library
build. This patch has the effect of doing the later by adding both
-pthread and -lpthread when building libpq.
-rw-r--r-- | config/acx_pthread.m4 | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/config/acx_pthread.m4 b/config/acx_pthread.m4 index 5961fafd1a..02af780e8e 100644 --- a/config/acx_pthread.m4 +++ b/config/acx_pthread.m4 @@ -89,26 +89,29 @@ for flag in $acx_pthread_flags; do -*) AC_MSG_CHECKING([whether pthreads work with $flag]) - PTHREAD_CFLAGS="$flag" + tryPTHREAD_CFLAGS="$flag" ;; pthread-config) + # skip this if we already have flags defined, for PostgreSQL + if test x"$PTHREAD_CFLAGS" != x -o x"$PTHREAD_LIBS" != x; then continue; fi AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + tryPTHREAD_CFLAGS="`pthread-config --cflags`" + tryPTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + fi ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) - PTHREAD_LIBS="-l$flag" + tryPTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$tryPTHREAD_LIBS $PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $tryPTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we @@ -130,11 +133,13 @@ for flag in $acx_pthread_flags; do AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then - break; + # 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 - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" done fi |