Blame m4/lock.m4

Packit Service f629e6
# lock.m4 serial 13 (gettext-0.18.2)
Packit Service f629e6
dnl Copyright (C) 2005-2014 Free Software Foundation, Inc.
Packit Service f629e6
dnl This file is free software; the Free Software Foundation
Packit Service f629e6
dnl gives unlimited permission to copy and/or distribute it,
Packit Service f629e6
dnl with or without modifications, as long as this notice is preserved.
Packit Service f629e6
Packit Service f629e6
dnl From Bruno Haible.
Packit Service f629e6
Packit Service f629e6
AC_DEFUN([gl_LOCK],
Packit Service f629e6
[
Packit Service f629e6
  AC_REQUIRE([gl_THREADLIB])
Packit Service f629e6
  if test "$gl_threads_api" = posix; then
Packit Service f629e6
    # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
Packit Service f629e6
    # pthread_rwlock_* functions.
Packit Service f629e6
    AC_CHECK_TYPE([pthread_rwlock_t],
Packit Service f629e6
      [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
Packit Service f629e6
         [Define if the POSIX multithreading library has read/write locks.])],
Packit Service f629e6
      [],
Packit Service f629e6
      [#include <pthread.h>])
Packit Service f629e6
    # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
Packit Service f629e6
    AC_COMPILE_IFELSE([
Packit Service f629e6
      AC_LANG_PROGRAM(
Packit Service f629e6
        [[#include <pthread.h>]],
Packit Service f629e6
        [[
Packit Service f629e6
#if __FreeBSD__ == 4
Packit Service f629e6
error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
Packit Service f629e6
#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
Packit Service f629e6
       && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
Packit Service f629e6
error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
Packit Service f629e6
#else
Packit Service f629e6
int x = (int)PTHREAD_MUTEX_RECURSIVE;
Packit Service f629e6
return !x;
Packit Service f629e6
#endif
Packit Service f629e6
        ]])],
Packit Service f629e6
      [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1],
Packit Service f629e6
         [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
Packit Service f629e6
  fi
Packit Service f629e6
  gl_PREREQ_LOCK
Packit Service f629e6
])
Packit Service f629e6
Packit Service f629e6
# Prerequisites of lib/glthread/lock.c.
Packit Service f629e6
AC_DEFUN([gl_PREREQ_LOCK], [:])