summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2012-12-22 08:42:48 +0100
committerJeremy Allison <jra@samba.org>2014-05-22 21:05:15 +0200
commit1993f605a4452087e49ae552dc85aa940e827e20 (patch)
treeee3a0422c8e5c2f70997fb415f173588ba01cfa4
parent730745d560c70160a81e26c84c8bef82589b382f (diff)
downloadsamba-1993f605a4452087e49ae552dc85aa940e827e20.tar.gz
samba-1993f605a4452087e49ae552dc85aa940e827e20.tar.xz
samba-1993f605a4452087e49ae552dc85aa940e827e20.zip
libreplace: Add support for pthread_mutexattr_setrobust
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--lib/replace/system/threads.h35
-rw-r--r--lib/replace/wscript14
2 files changed, 49 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+*/
+
+#include <pthread.h>
+
+#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,