Protect call to pthread_condattr_setclock with define.
authorPatrick Welche <prlw1@cam.ac.uk>
Thu, 12 Jan 2012 15:38:15 +0000 (15:38 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 16 Jan 2012 04:41:27 +0000 (23:41 -0500)
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
glib/gthread-posix.c
glib/tests/thread.c

index 4b13eac..d3628e5 100644 (file)
@@ -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.h>],
-                    [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.h>],
+                [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.h>],
+                [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
 
index faa6004..5d1344d 100644 (file)
@@ -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
 
index b6bb5a9..29b3850 100644 (file)
@@ -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);