From 1993f605a4452087e49ae552dc85aa940e827e20 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 22 Dec 2012 08:42:48 +0100 Subject: [PATCH] libreplace: Add support for pthread_mutexattr_setrobust Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher Reviewed-by: Jeremy Allison --- lib/replace/system/threads.h | 35 +++++++++++++++++++++++++++++++++++ lib/replace/wscript | 14 ++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 lib/replace/system/threads.h diff --git a/lib/replace/system/threads.h b/lib/replace/system/threads.h new file mode 100644 index 00000000000..3d89bb2e98f --- /dev/null +++ b/lib/replace/system/threads.h @@ -0,0 +1,35 @@ +#ifndef _system_threads_h +#define _system_threads_h +/* + Unix SMB/CIFS implementation. + + macros to go along with the lib/replace/ portability layer code + + Copyright (C) Volker Lendecke 2012 + + ** NOTE! The following LGPL license applies to the replace + ** library. This does NOT imply that all of Samba is released + ** under the LGPL + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see . +*/ + +#include + +#if defined(HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP) && \ + !defined(HAVE_PTHREAD_MUTEXATTR_SETROBUST) +#define pthread_mutexattr_setrobust pthread_mutexattr_setrobust_np +#endif + +#endif diff --git a/lib/replace/wscript b/lib/replace/wscript index 483c0dcec86..987b56b38c2 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -455,6 +455,20 @@ removeea setea conf.CHECK_HEADERS('pthread.h') conf.DEFINE('HAVE_PTHREAD', '1') + if conf.CONFIG_SET('HAVE_PTHREAD'): + + conf.CHECK_DECLS('pthread_mutexattr_setrobust', headers='pthread.h') + conf.CHECK_FUNCS_IN('pthread_mutexattr_setrobust', 'pthread', + checklibc=True, headers='pthread.h') + + conf.CHECK_DECLS('pthread_mutexattr_setrobust_np', headers='pthread.h') + conf.CHECK_FUNCS_IN('pthread_mutexattr_setrobust_np', 'pthread', + checklibc=True, headers='pthread.h') + + if (conf.CONFIG_SET('HAVE_PTHREAD_MUTEXATTR_SETROBUST') or + conf.CONFIG_SET('HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP')): + conf.DEFINE('HAVE_ROBUST_MUTEXES', 1) + conf.CHECK_FUNCS_IN('crypt', 'crypt', checklibc=True) conf.CHECK_VARIABLE('rl_event_hook', define='HAVE_DECL_RL_EVENT_HOOK', always=True, -- 2.11.4.GIT