From 94f5464bff8ac8f66b603ccccc0d4cb59ecddd01 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Mon, 8 Aug 2011 20:04:05 -0700 Subject: [PATCH] Merge in pthread update/etc. --- Makefile.am | 9 +- configure.ac | 3 +- libmemcachedinternal/util/include.am | 3 +- m4/{acx_pthread.m4 => ax_pthread.m4} | 115 +++++++----- m4/enable_utillib.m4 | 2 +- m4/pandora_have_protobuf.m4 | 82 --------- m4/pandora_pthread.m4 | 258 --------------------------- tests/include.am | 2 - 8 files changed, 77 insertions(+), 397 deletions(-) rename m4/{acx_pthread.m4 => ax_pthread.m4} (74%) delete mode 100644 m4/pandora_have_protobuf.m4 delete mode 100644 m4/pandora_pthread.m4 diff --git a/Makefile.am b/Makefile.am index 5b600d5a..2ecc8f2c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,14 +24,7 @@ EXTRA_DIST= \ README.win32 \ config/autorun.sh \ config/pandora-plugin \ - config/uncrustify.cfg \ - m4/ac_cxx_header_stdcxx_98.m4 \ - m4/acx_pthread.m4 \ - m4/gettext.m4 \ - m4/iconv.m4 \ - m4/pkg.m4 \ - m4/po.m4 \ - m4/progtest.m4 + config/uncrustify.cfg libmemcached_libmemcached_la_LDFLAGS= diff --git a/configure.ac b/configure.ac index 153fdb1f..fcca1fd7 100644 --- a/configure.ac +++ b/configure.ac @@ -63,10 +63,10 @@ AC_SEARCH_LIBS(gethostbyname, nsl) PANDORA_HAVE_LIBEVENT my_saved_libs="$LIBS" LIBS= -PANDORA_REQUIRE_PTHREAD LIBS="$my_saved_libs" dnl Specialty checks +ACX_PTHREAD CONFIG_EXTRA DETECT_BYTEORDER ENABLE_UTILLIB @@ -78,7 +78,6 @@ PROTOCOL_BINARY_TEST WITH_MEMCACHED ENABLE_DEPRECATED PANDORA_HAVE_LIBINNODB -PANDORA_PRINT_CALLSTACK PANDORA_HAVE_SASL WITH_LIBGEARMAN diff --git a/libmemcachedinternal/util/include.am b/libmemcachedinternal/util/include.am index 64589255..c18a4eff 100644 --- a/libmemcachedinternal/util/include.am +++ b/libmemcachedinternal/util/include.am @@ -19,7 +19,6 @@ libmemcachedinternal_libmemcachedutilinternal_la_CXXFLAGS= \ ${PTHREAD_CFLAGS} \ -DBUILDING_LIBMEMCACHEDINTERNAL libmemcachedinternal_libmemcachedutilinternal_la_LIBADD= libmemcachedinternal/libmemcachedinternal.la ${PTHREAD_LIBS} -libmemcachedinternal_libmemcachedutilinternal_la_LDFLAGS= ${AM_LDFLAGS} -version-info ${MEMCACHED_UTIL_LIBRARY_VERSION} -libmemcachedinternal_libmemcachedutilinternal_la_DEPENDENCIES= libmemcached/libmemcached.la +libmemcachedinternal_libmemcachedutilinternal_la_DEPENDENCIES= libmemcachedinternal/libmemcachedinternal.la diff --git a/m4/acx_pthread.m4 b/m4/ax_pthread.m4 similarity index 74% rename from m4/acx_pthread.m4 rename to m4/ax_pthread.m4 index 0a86dffe..a6bf596c 100644 --- a/m4/acx_pthread.m4 +++ b/m4/ax_pthread.m4 @@ -1,10 +1,10 @@ # =========================================================================== -# http://autoconf-archive.cryp.to/acx_pthread.html +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html # =========================================================================== # # SYNOPSIS # -# ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # @@ -25,14 +25,18 @@ # If you are only building threads programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # -# LIBS="$PTHREAD_LIBS $LIBS" -# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -# CC="$PTHREAD_CC" +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant # has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name # (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# # ACTION-IF-FOUND is a list of shell commands to run if a threads library # is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it # is not found. If ACTION-IF-FOUND is not specified, the default action @@ -45,9 +49,12 @@ # Alejandro Forero Cuervo to the autoconf macro repository. We are also # grateful for the helpful feedback of numerous users. # +# Updated for Autoconf 2.68 by Daniel Richard G. +# # LICENSE # # Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -75,11 +82,13 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -AC_DEFUN([ACX_PTHREAD], [ +#serial 16 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) -AC_LANG_SAVE -AC_LANG_C -acx_pthread_ok=no +AC_LANG_PUSH([C]) +ax_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). @@ -94,9 +103,9 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) - AC_MSG_RESULT($acx_pthread_ok) - if test x"$acx_pthread_ok" = xno; then + AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) + AC_MSG_RESULT($ax_pthread_ok) + if test x"$ax_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi @@ -114,7 +123,7 @@ fi # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. -acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: @@ -147,12 +156,16 @@ case "${host_cpu}-${host_os}" in # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: - acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + *-darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" ;; esac -if test x"$acx_pthread_ok" = xno; then -for flag in $acx_pthread_flags; do +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do case $flag in none) @@ -164,12 +177,12 @@ for flag in $acx_pthread_flags; do PTHREAD_CFLAGS="$flag" ;; - pthread-config) - 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`" - ;; + pthread-config) + AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) @@ -191,17 +204,23 @@ for flag in $acx_pthread_flags; do # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. - AC_TRY_LINK([#include ], - [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]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" - AC_MSG_RESULT($acx_pthread_ok) - if test "x$acx_pthread_ok" = xyes; then + AC_MSG_RESULT($ax_pthread_ok) + if test "x$ax_pthread_ok" = xyes; then break; fi @@ -211,19 +230,21 @@ done fi # Various other checks: -if test "x$acx_pthread_ok" = xyes; then +if test "x$ax_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_MSG_CHECKING([for joinable pthread attribute]) - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_TRY_LINK([#include ], [int attr=$attr; return attr;], - [attr_name=$attr; break]) - done + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $attr; return attr /* ; */])], + [attr_name=$attr; break], + []) + done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, @@ -242,15 +263,25 @@ if test "x$acx_pthread_ok" = xyes; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + ax_cv_PTHREAD_PRIO_INHERIT, [ + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[#include ]], [[int i = PTHREAD_PRIO_INHERIT;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], + AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])) + LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then + if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC - fi + fi else PTHREAD_CC="$CC" fi @@ -260,12 +291,12 @@ AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$acx_pthread_ok" = xyes; then +if test x"$ax_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else - acx_pthread_ok=no + ax_pthread_ok=no $2 fi -AC_LANG_RESTORE -])dnl ACX_PTHREAD +AC_LANG_POP +])dnl AX_PTHREAD diff --git a/m4/enable_utillib.m4 b/m4/enable_utillib.m4 index d77922d3..e9730f1b 100644 --- a/m4/enable_utillib.m4 +++ b/m4/enable_utillib.m4 @@ -6,7 +6,7 @@ AC_DEFUN([ENABLE_UTILLIB],[ [BUILD_UTILLIB="yes"]) if test "x$BUILD_UTILLIB" = "xyes"; then - if test x"$acx_pthread_ok" != "xyes"; then + if test x"$ax_pthread_ok" != "xyes"; then AC_MSG_ERROR([Sorry you need POSIX thread library to build libmemcachedutil.]) fi AC_DEFINE([HAVE_LIBMEMCACHEDUTIL], [1], [Enables libmemcachedutil Support]) diff --git a/m4/pandora_have_protobuf.m4 b/m4/pandora_have_protobuf.m4 deleted file mode 100644 index 47f4cd4a..00000000 --- a/m4/pandora_have_protobuf.m4 +++ /dev/null @@ -1,82 +0,0 @@ -dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- -dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: -dnl -dnl pandora-build: A pedantic build system -dnl Copyright (C) 2009 Sun Microsystems, Inc. -dnl This file is free software; Sun Microsystems -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl From Monty Taylor - -dnl -------------------------------------------------------------------- -dnl Check for Google Proto Buffers -dnl -------------------------------------------------------------------- - -AC_DEFUN([_PANDORA_SEARCH_LIBPROTOBUF],[ - AC_REQUIRE([PANDORA_HAVE_PTHREAD]) - - AC_LANG_PUSH([C++]) - save_CXXFLAGS="${CXXFLAGS}" - CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" - AC_LIB_HAVE_LINKFLAGS(protobuf,, - [#include ], - [google::protobuf::FileDescriptor* file;], - [system]) - CXXFLAGS="${PTHREAD_CFLAGS} ${save_CXXFLAGS}" - LIBPROTOBUF="${LIBPROTOBUF} ${PTHREAD_LIBS}" - LTLIBPROTOBUF="${LTLIBPROTOBUF} ${PTHREAD_LIBS}" - AC_LANG_POP() -]) - -AC_DEFUN([PANDORA_HAVE_LIBPROTOBUF],[ - AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) -]) - -AC_DEFUN([PANDORA_REQUIRE_LIBPROTOBUF],[ - AC_REQUIRE([PANDORA_HAVE_LIBPROTOBUF]) - AS_IF([test x$ac_cv_libprotobuf = xno], - AC_MSG_ERROR([libprotobuf is required for ${PACKAGE}. On Debian this can be found in libprotobuf-dev. On RedHat this can be found in protobuf-devel.])) -]) - -AC_DEFUN([PANDORA_PROTOBUF_REQUIRE_VERSION],[ - AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) - p_recent_ver=$1 - p_recent_ver_major=`echo $p_recent_ver | cut -f1 -d.` - p_recent_ver_minor=`echo $p_recent_ver | cut -f2 -d.` - p_recent_ver_patch=`echo $p_recent_ver | cut -f3 -d.` - p_recent_ver_hex=`printf "%d%03d%03d" $p_recent_ver_major $p_recent_ver_minor $p_recent_ver_patch` - AC_LANG_PUSH([C++]) - AC_CACHE_CHECK([for protobuf >= $p_recent_ver], - [drizzle_cv_protobuf_recent], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include -#if GOOGLE_PROTOBUF_VERSION < $p_recent_ver_hex -# error Your version of Protobuf is too old -#endif - ]])], - [drizzle_cv_protobuf_recent=yes], - [drizzle_cv_protobuf_recent=no])]) - AS_IF([test "$drizzle_cv_protobuf_recent" = "no"],[ - AC_MSG_ERROR([Your version of Google Protocol Buffers is too old. ${PACKAGE} requires at least version $p_recent_ver]) - ]) - AC_LANG_POP() -]) - -AC_DEFUN([_PANDORA_SEARCH_PROTOC],[ - AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) - AC_PATH_PROG([PROTOC],[protoc],[no],[$LIBPROTOBUF_PREFIX/bin:$PATH]) -]) - -AC_DEFUN([PANDORA_HAVE_PROTOC],[ - AC_REQUIRE([_PANDORA_SEARCH_PROTOC]) -]) - -AC_DEFUN([PANDORA_REQUIRE_PROTOC],[ - AC_REQUIRE([PANDORA_HAVE_PROTOC]) - AS_IF([test "x$PROTOC" = "xno"],[ - AC_MSG_ERROR([Couldn't find the protoc compiler. On Debian this can be found in protobuf-compiler. On RedHat this can be found in protobuf-compiler.]) - ]) -]) - - diff --git a/m4/pandora_pthread.m4 b/m4/pandora_pthread.m4 deleted file mode 100644 index a4111166..00000000 --- a/m4/pandora_pthread.m4 +++ /dev/null @@ -1,258 +0,0 @@ -dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- -dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: -dnl -dnl pandora-build: A pedantic build system -dnl Copyright (C) 2009 Sun Microsystems, Inc. -dnl This file is free software; Sun Microsystems -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. -dnl -dnl From Monty Taylor - - -dnl -------------------------------------------------------------------- -dnl Check for libpthread -dnl -------------------------------------------------------------------- - -AC_DEFUN([PANDORA_PTHREAD_YIELD],[ - AC_REQUIRE([ACX_PTHREAD]) - - save_CFLAGS="${CFLAGS}" - save_CXXFLAGS="${CXXFLAGS}" - CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}" - CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" - dnl Some OSes like Mac OS X have that as a replacement for pthread_yield() - AC_CHECK_FUNCS(pthread_yield_np) - AC_CACHE_CHECK([if pthread_yield takes zero arguments], - [pandora_cv_pthread_yield_zero_arg], - [AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ - pthread_yield(); - ]])], - [pandora_cv_pthread_yield_zero_arg=yes], - [pandora_cv_pthread_yield_zero_arg=no])]) - AS_IF([test "$pandora_cv_pthread_yield_zero_arg" = "yes"],[ - AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], - [pthread_yield that doesn't take any arguments]) - ]) - - AC_CACHE_CHECK([if pthread_yield takes one argument], - [pandora_cv_pthread_yield_one_arg], - [AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[ -#include - ]],[[ - pthread_yield(0); - ]])], - [pandora_cv_pthread_yield_one_arg=yes], - [pandora_cv_pthread_yield_one_arg=no])]) - AS_IF([test "$pandora_cv_pthread_yield_one_arg" = "yes"],[ - AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], - [pthread_yield function with one argument]) - ]) - - AC_CHECK_FUNCS(pthread_attr_getstacksize pthread_attr_setprio \ - pthread_attr_setschedparam \ - pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \ - pthread_key_delete pthread_rwlock_rdlock pthread_setprio \ - pthread_setprio_np pthread_setschedparam pthread_sigmask \ - pthread_attr_create rwlock_init -) - - - -# Check definition of pthread_getspecific -AC_CACHE_CHECK([args to pthread_getspecific], [pandora_cv_getspecific_args], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#if !defined(_REENTRANT) -#define _REENTRANT -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS -#endif -#include - ]], [[ -void *pthread_getspecific(pthread_key_t key); -pthread_getspecific((pthread_key_t) NULL); - ]])], - [pandora_cv_getspecific_args=POSIX], - [pandora_cv_getspecific_args=other])]) - if test "$pandora_cv_getspecific_args" = "other" - then - AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1], - [For some non posix threads]) - fi - - # Check definition of pthread_mutex_init - AC_CACHE_CHECK([args to pthread_mutex_init], [pandora_cv_mutex_init_args], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#ifndef _REENTRANT -#define _REENTRANT -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS -#endif -#include ]], [[ - pthread_mutexattr_t attr; - pthread_mutex_t mp; - pthread_mutex_init(&mp,&attr); ]])], - [pandora_cv_mutex_init_args=POSIX], - [pandora_cv_mutex_init_args=other])]) - if test "$pandora_cv_mutex_init_args" = "other" - then - AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1], - [For some non posix threads]) - fi -#---END: - -#---START: Used in for client configure -# Check definition of readdir_r -AC_CACHE_CHECK([args to readdir_r], [pandora_cv_readdir_r], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifndef _REENTRANT -#define _REENTRANT -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS -#endif -#include -#include ]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result); -readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])], - [pandora_cv_readdir_r=POSIX], - [pandora_cv_readdir_r=other])]) -if test "$pandora_cv_readdir_r" = "POSIX" -then - AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r]) -fi - -# Check definition of posix sigwait() -AC_CACHE_CHECK([style of sigwait], [pandora_cv_sigwait], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifndef _REENTRANT -#define _REENTRANT -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS -#endif -#include -#include - ]], [[ -#ifndef _AIX -sigset_t set; -int sig; -sigwait(&set,&sig); -#endif - ]])], - [pandora_cv_sigwait=POSIX], - [pandora_cv_sigwait=other])]) -if test "$pandora_cv_sigwait" = "POSIX" -then - AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait]) -fi - -if test "$pandora_cv_sigwait" != "POSIX" -then -unset pandora_cv_sigwait -# Check definition of posix sigwait() -AC_CACHE_CHECK([style of sigwait], [pandora_cv_sigwait], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifndef _REENTRANT -#define _REENTRANT -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS -#endif -#include -#include - ]], [[ -sigset_t set; -int sig; -sigwait(&set); - ]])], - [pandora_cv_sigwait=NONPOSIX], - [pandora_cv_sigwait=other])]) -if test "$pandora_cv_sigwait" = "NONPOSIX" -then - AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument]) -fi -fi -#---END: - -# Check if pthread_attr_setscope() exists -AC_CACHE_CHECK([for pthread_attr_setscope], [pandora_cv_pthread_attr_setscope], - [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifndef _REENTRANT -#define _REENTRANT -#endif -#ifndef _POSIX_PTHREAD_SEMANTICS -#define _POSIX_PTHREAD_SEMANTICS -#endif -#include - ]], [[ -pthread_attr_t thr_attr; -pthread_attr_setscope(&thr_attr,0); - ]])], - [pandora_cv_pthread_attr_setscope=yes], - [pandora_cv_pthread_attr_setscope=no])]) -if test "$pandora_cv_pthread_attr_setscope" = "yes" -then - AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope]) -fi - - -AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg, -[AC_TRY_LINK([#define _GNU_SOURCE -#include -#ifdef __cplusplus -extern "C" -#endif -], -[ - pthread_yield(); -], ac_cv_pthread_yield_zero_arg=yes, ac_cv_pthread_yield_zero_arg=yeso)]) -if test "$ac_cv_pthread_yield_zero_arg" = "yes" -then - AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], - [pthread_yield that doesn't take any arguments]) -fi -AC_CACHE_CHECK([if pthread_yield takes 1 argument], ac_cv_pthread_yield_one_arg, -[AC_TRY_LINK([#define _GNU_SOURCE -#include -#ifdef __cplusplus -extern "C" -#endif -], -[ - pthread_yield(0); -], ac_cv_pthread_yield_one_arg=yes, ac_cv_pthread_yield_one_arg=no)]) -if test "$ac_cv_pthread_yield_one_arg" = "yes" -then - AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], - [pthread_yield function with one argument]) -fi - - CFLAGS="${save_CFLAGS}" - CXXFLAGS="${save_CXXFLAGS}" -]) - - -AC_DEFUN([_PANDORA_SEARCH_PTHREAD],[ - AC_REQUIRE([ACX_PTHREAD]) - LIBS="${PTHREAD_LIBS} ${LIBS}" - AM_CFLAGS="${PTHREAD_CFLAGS} ${AM_CFLAGS}" - AM_CXXFLAGS="${PTHREAD_CFLAGS} ${AM_CXXFLAGS}" - PANDORA_PTHREAD_YIELD -]) - - -AC_DEFUN([PANDORA_HAVE_PTHREAD],[ - AC_REQUIRE([_PANDORA_SEARCH_PTHREAD]) -]) - -AC_DEFUN([PANDORA_REQUIRE_PTHREAD],[ - AC_REQUIRE([PANDORA_HAVE_PTHREAD]) - AS_IF([test "x$acx_pthread_ok" != "xyes"],[ - AC_MSG_ERROR(could not find libpthread)]) -]) diff --git a/tests/include.am b/tests/include.am index 18dbdb6b..dc11c910 100644 --- a/tests/include.am +++ b/tests/include.am @@ -373,7 +373,5 @@ callgrind: $(LIBTOOL) --mode=execute valgrind --tool=callgrind --callgrind-out-file=tests/callgrind.out.%p tests/testapp callgrind_annotate tests/callgrind.out.* --auto=yes > tests/callgrind.out -test-no-outputdiff: test - hudson-valgrind: tests/testapp $(VALGRIND_COMMAND) --log-file=tests/valgrind.out tests/testapp -- 2.30.2