Blame m4/lock.m4

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