From decac50c1598f75ce781a3c6a68a85c0defe38ac Mon Sep 17 00:00:00 2001 From: Patrick Welche Date: Thu, 12 Jan 2012 15:38:15 +0000 Subject: [PATCH] Protect call to pthread_condattr_setclock with define. While here update pthread_attr_setstacksize test to use AC_LINK_IFELSE and avoid an unused variable in glib/tests/thread.c. https://bugzilla.gnome.org/show_bug.cgi?id=667790 --- configure.ac | 22 +++++++++++++++++----- glib/gthread-posix.c | 2 +- glib/tests/thread.c | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index 4b13eac58..d3628e537 100644 --- a/configure.ac +++ b/configure.ac @@ -2238,11 +2238,23 @@ if test x"$have_threads" = xposix; then # This is not AC_CHECK_FUNC to also work with function # name mangling in header files. AC_MSG_CHECKING(for pthread_attr_setstacksize) - AC_TRY_LINK([#include ], - [pthread_attr_t t; pthread_attr_setstacksize(&t,0)], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE,1,[Have function pthread_attr_setstacksize])], - [AC_MSG_RESULT(no)]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ], + [pthread_attr_t t; pthread_attr_setstacksize(&t,0)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE,1, + [Have function pthread_attr_setstacksize])], + [AC_MSG_RESULT(no)]) + AC_MSG_CHECKING(for pthread_condattr_setclock) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ], + [pthread_condattr_t a; pthread_condattr_setclock(&a,0)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_CONDATTR_SETCLOCK,1, + [Have function pthread_condattr_setclock])], + [AC_MSG_RESULT(no)]) CPPFLAGS="$glib_save_CPPFLAGS" fi diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c index faa600426..5d1344d31 100644 --- a/glib/gthread-posix.c +++ b/glib/gthread-posix.c @@ -636,7 +636,7 @@ g_cond_impl_new (void) gint status; pthread_condattr_init (&attr); -#ifdef CLOCK_MONOTONIC +#if defined (HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined (CLOCK_MONOTONIC) pthread_condattr_setclock (&attr, CLOCK_MONOTONIC); #endif diff --git a/glib/tests/thread.c b/glib/tests/thread.c index b6bb5a9f9..29b3850a3 100644 --- a/glib/tests/thread.c +++ b/glib/tests/thread.c @@ -167,9 +167,9 @@ test_thread5 (void) static gpointer thread6_func (gpointer data) { +#ifdef HAVE_SYS_PRCTL_H const gchar name[16]; -#ifdef HAVE_SYS_PRCTL_H prctl (PR_GET_NAME, name, 0, 0, 0, 0); g_assert_cmpstr (name, ==, (gchar*)data);