From cvs-return-5301-apmail-apr-cvs-archive=apr.apache.org@apr.apache.org Sat Nov 15 23:42:34 2003 Return-Path: Delivered-To: apmail-apr-cvs-archive@www.apache.org Received: (qmail 78104 invoked from network); 15 Nov 2003 23:42:34 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 15 Nov 2003 23:42:34 -0000 Received: (qmail 43899 invoked by uid 500); 15 Nov 2003 23:42:20 -0000 Delivered-To: apmail-apr-cvs-archive@apr.apache.org Received: (qmail 43851 invoked by uid 500); 15 Nov 2003 23:42:20 -0000 Mailing-List: contact cvs-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Reply-To: dev@apr.apache.org Delivered-To: mailing list cvs@apr.apache.org Received: (qmail 43838 invoked from network); 15 Nov 2003 23:42:20 -0000 Date: 15 Nov 2003 23:42:33 -0000 Message-ID: <20031115234233.78081.qmail@minotaur.apache.org> From: jorton@apache.org To: apr-cvs@apache.org Subject: cvs commit: apr/build apr_threads.m4 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N jorton 2003/11/15 15:42:33 Modified: . Tag: APR_0_9_BRANCH Makefile.in configure.in build Tag: APR_0_9_BRANCH apr_threads.m4 Log: Backport from HEAD: * configure.in: Remove lib_target_libs setting for AIX. * Makefile.in ($(TARGET_LIB)): Use ALL_LIBS instead of configured lib_target_libs value in $(LINK) line. * build/apr_threads.m4 (APR_PTHREAD_TRY_RUN): Rename macro from APR_PTHREAD_CHECK_COMPILE; take an actions argument. (APR_PTHREADS_CHECK): Rewrite to use APR_PTHREAD_TRY_RUN, fix broken use of caching, and always try looking for a library to add to LIBS as well as a flag for CFLAGS. Revision Changes Path No revision No revision 1.87.2.1 +1 -1 apr/Makefile.in Index: Makefile.in =================================================================== RCS file: /home/cvs/apr/Makefile.in,v retrieving revision 1.87 retrieving revision 1.87.2.1 diff -u -u -r1.87 -r1.87.2.1 --- Makefile.in 30 Apr 2003 17:28:25 -0000 1.87 +++ Makefile.in 15 Nov 2003 23:42:33 -0000 1.87.2.1 @@ -100,7 +100,7 @@ $(TARGET_LIB): @for i in $(SUBDIRS); do objects="$$objects $$i/*.@so_ext@"; done ; \ - tmpcmd="$(LINK) @lib_target@ @lib_target_libs@"; \ + tmpcmd="$(LINK) @lib_target@ $(ALL_LIBS)"; \ echo $$tmpcmd; \ $$tmpcmd && touch $@ 1.535.2.2 +0 -6 apr/configure.in Index: configure.in =================================================================== RCS file: /home/cvs/apr/configure.in,v retrieving revision 1.535.2.1 retrieving revision 1.535.2.2 diff -u -u -r1.535.2.1 -r1.535.2.2 --- configure.in 16 Oct 2003 22:13:01 -0000 1.535.2.1 +++ configure.in 15 Nov 2003 23:42:33 -0000 1.535.2.2 @@ -186,12 +186,7 @@ export_lib_target='' fi -# On AIX, libraries need to be specified on the link of lib_target -lib_target_libs="" case $host in - *aix*) - lib_target_libs="\$(EXTRA_LIBS)"; - ;; *-solaris2*) apr_platform_runtime_link_flag="-R" ;; @@ -207,7 +202,6 @@ AC_SUBST(shlibpath_var) AC_SUBST(LTFLAGS) AC_SUBST(LT_LDFLAGS) -AC_SUBST(lib_target_libs) dnl ----------------------------- Checks for compiler flags nl=' No revision No revision 1.8.2.1 +47 -42 apr/build/apr_threads.m4 Index: apr_threads.m4 =================================================================== RCS file: /home/cvs/apr/build/apr_threads.m4,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -u -u -r1.8 -r1.8.2.1 --- apr_threads.m4 1 Apr 2003 00:15:04 -0000 1.8 +++ apr_threads.m4 15 Nov 2003 23:42:33 -0000 1.8.2.1 @@ -70,11 +70,12 @@ dnl -dnl APR_PTHREADS_CHECK_COMPILE +dnl APR_PTHREADS_TRY_RUN(actions-if-success) dnl -dnl Check whether the current setup can use POSIX threads calls +dnl Try running a program which uses pthreads, executing the +dnl actions-if-success commands on success. dnl -AC_DEFUN(APR_PTHREADS_CHECK_COMPILE, [ +AC_DEFUN(APR_PTHREADS_TRY_RUN, [ AC_TRY_RUN( [ #include #include @@ -90,61 +91,65 @@ int data = 1; pthread_mutexattr_init(&mattr); return pthread_create(&thd, NULL, thread_routine, &data); -} ], [ - pthreads_working="yes" - ], [ - pthreads_working="no" - ], pthreads_working="no" ) +} ], [apr_p_t_r=yes], [apr_p_t_r=no], [apr_p_t_r=no]) + +if test $apr_p_t_r = yes; then + $1 +fi + ])dnl dnl dnl APR_PTHREADS_CHECK() dnl -dnl Try to find a way to enable POSIX threads +dnl Try to find a way to enable POSIX threads. Sets the +dnl pthreads_working variable to "yes" on success. dnl AC_DEFUN(APR_PTHREADS_CHECK,[ -if test -n "$ac_cv_pthreads_lib"; then - LIBS="$LIBS -l$ac_cv_pthreads_lib" -fi -if test -n "$ac_cv_pthreads_cflags"; then - CFLAGS="$CFLAGS $ac_cv_pthreads_cflags" -fi +AC_CACHE_CHECK([for CFLAGS needed for pthreads], [apr_cv_pthreads_cflags], +[apr_ptc_cflags=$CFLAGS + for flag in none -kthread -pthread -pthreads -mthreads -Kthread -threads; do + CFLAGS=$apr_ptc_cflags + test "x$flag" != "xnone" && CFLAGS="$CFLAGS $flag" + APR_PTHREADS_TRY_RUN([ + apr_cv_pthreads_cflags="$flag" + break + ]) + done + CFLAGS=$apr_ptc_cflags +]) -APR_PTHREADS_CHECK_COMPILE +if test -n "$apr_cv_pthreads_cflags"; then + pthreads_working=yes + if test "x$apr_cv_pthreads_cflags" != "xnone"; then + APR_ADDTO(CFLAGS,[$apr_cv_pthreads_cflags]) + fi +fi -AC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[ -ac_cv_pthreads_cflags="" -if test "$pthreads_working" != "yes"; then - for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads; do - ac_save="$CFLAGS" - CFLAGS="$CFLAGS $flag" - APR_PTHREADS_CHECK_COMPILE - if test "$pthreads_working" = "yes"; then - ac_cv_pthreads_cflags="$flag" +# The CFLAGS may or may not be sufficient to ensure that libapr +# depends on the pthreads library: some versions of libtool +# drop -pthread when passed on the link line; some versions of +# gcc ignore -pthread when linking a shared object. So always +# try and add the relevant library to LIBS too. + +AC_CACHE_CHECK([for LIBS needed for pthreads], [apr_cv_pthreads_lib], [ + apr_ptc_libs=$LIBS + for lib in -lpthread -lpthreads -lc_r; do + LIBS="$apr_ptc_libs $lib" + APR_PTHREADS_TRY_RUN([ + apr_cv_pthreads_lib=$lib break - fi - CFLAGS="$ac_save" + ]) done -fi + LIBS=$apr_ptc_libs ]) -AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[ -ac_cv_pthreads_lib="" -if test "$pthreads_working" != "yes"; then - for lib in pthread pthreads c_r; do - ac_save="$LIBS" - LIBS="$LIBS -l$lib" - APR_PTHREADS_CHECK_COMPILE - if test "$pthreads_working" = "yes"; then - ac_cv_pthreads_lib="$lib" - break - fi - LIBS="$ac_save" - done +if test -n "$apr_cv_pthreads_lib"; then + pthreads_working=yes + APR_ADDTO(LIBS,[$apr_cv_pthreads_lib]) fi -]) if test "$pthreads_working" = "yes"; then threads_result="POSIX Threads found"