From 1f7aeb60d83d781ae9eff0d2f0dbe999a091853f Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 8 Mar 2015 19:18:21 +0000 Subject: [PATCH 01/13] tdb: Fix CID 1034841 Resource leak Signed-off-by: Volker Lendecke Reviewed-by: Ira Cooper (cherry picked from commit 1b8c07ac7d51eb2a1957d79ea05b170106a9c0e8) --- lib/tdb/test/run-incompatible.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/tdb/test/run-incompatible.c b/lib/tdb/test/run-incompatible.c index b8e95b5..5f1b586 100644 --- a/lib/tdb/test/run-incompatible.c +++ b/lib/tdb/test/run-incompatible.c @@ -28,15 +28,17 @@ static void log_fn(struct tdb_context *tdb, enum tdb_debug_level level, const ch static unsigned int hdr_rwlocks(const char *fname) { struct tdb_header hdr; + ssize_t nread; int fd = open(fname, O_RDONLY); if (fd == -1) return -1; - if (read(fd, &hdr, sizeof(hdr)) != sizeof(hdr)) - return -1; - + nread = read(fd, &hdr, sizeof(hdr)); close(fd); + if (nread != sizeof(hdr)) { + return -1; + } return hdr.rwlocks; } -- 1.9.1 From e8a41ea80afd3c775f1ed06936dcefcc6c876db1 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 8 Mar 2015 19:21:23 +0000 Subject: [PATCH 02/13] tdb: Fix CID 1034842 Resource leak Signed-off-by: Volker Lendecke Reviewed-by: Ira Cooper Autobuild-User(master): Volker Lendecke Autobuild-Date(master): Wed Mar 11 00:23:20 CET 2015 on sn-devel-104 (cherry picked from commit 006328b81b2dd3416c20b0f19b438c614c1932cc) --- lib/tdb/test/run-open-during-transaction.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/tdb/test/run-open-during-transaction.c b/lib/tdb/test/run-open-during-transaction.c index 1605376..9a6c6c1 100644 --- a/lib/tdb/test/run-open-during-transaction.c +++ b/lib/tdb/test/run-open-during-transaction.c @@ -74,6 +74,7 @@ static void check_file_intact(int fd) if (pread(fd, contents, st.st_size, 0) != st.st_size) { diag("Read fail"); errors++; + free(contents); return; } -- 1.9.1 From b39599c83d9dbfb038b499b83f185025411f301c Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Fri, 15 Aug 2014 11:36:40 +1000 Subject: [PATCH 03/13] tdb: Do not build test binaries if it's not a standalone build Signed-off-by: Amitay Isaacs Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Tue Mar 31 01:56:02 CEST 2015 on sn-devel-104 (cherry picked from commit 48e90ba062ecde71d03c3cf4bc9a809f805fabe4) --- lib/tdb/wscript | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/tdb/wscript b/lib/tdb/wscript index b283795..00c244a 100644 --- a/lib/tdb/wscript +++ b/lib/tdb/wscript @@ -165,17 +165,18 @@ def build(bld): 'tools/tdbtool.c', 'tdb', manpages='man/tdbtool.8') - # FIXME: This hardcoded list is stupid, stupid, stupid. - bld.SAMBA_SUBSYSTEM('tdb-test-helpers', - 'test/external-agent.c test/lock-tracking.c test/logging.c', - tdb_deps, - includes='include') - - for t in tdb1_unit_tests: - b = "tdb1-" + t - s = "test/" + t + ".c" - bld.SAMBA_BINARY(b, s, 'replace tdb-test-helpers', - includes='include', install=False) + if bld.env.standalone_tdb: + # FIXME: This hardcoded list is stupid, stupid, stupid. + bld.SAMBA_SUBSYSTEM('tdb-test-helpers', + 'test/external-agent.c test/lock-tracking.c test/logging.c', + tdb_deps, + includes='include') + + for t in tdb1_unit_tests: + b = "tdb1-" + t + s = "test/" + t + ".c" + bld.SAMBA_BINARY(b, s, 'replace tdb-test-helpers', + includes='include', install=False) if not bld.CONFIG_SET('USING_SYSTEM_PYTDB'): bld.SAMBA_PYTHON('pytdb', -- 1.9.1 From 91817e4fc7f0a6238d70c14a90286dd669fa985b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 26 Apr 2015 10:13:05 +0000 Subject: [PATCH 04/13] Add set date to tdb manpages. This makes builds reproducible. Signed-Off-By: Jelmer Vernooij Reveiewed-by: Jeremy Allison (cherry picked from commit 38553a305fe4021e2bd034bed11eaef18863aa0a) --- lib/tdb/man/tdbbackup.8.xml | 1 + lib/tdb/man/tdbdump.8.xml | 1 + lib/tdb/man/tdbrestore.8.xml | 1 + lib/tdb/man/tdbtool.8.xml | 1 + 4 files changed, 4 insertions(+) diff --git a/lib/tdb/man/tdbbackup.8.xml b/lib/tdb/man/tdbbackup.8.xml index 30a658d..2cc050f 100644 --- a/lib/tdb/man/tdbbackup.8.xml +++ b/lib/tdb/man/tdbbackup.8.xml @@ -1,6 +1,7 @@ +2015-04-25 tdbbackup diff --git a/lib/tdb/man/tdbdump.8.xml b/lib/tdb/man/tdbdump.8.xml index 25fd432..31e6888 100644 --- a/lib/tdb/man/tdbdump.8.xml +++ b/lib/tdb/man/tdbdump.8.xml @@ -1,6 +1,7 @@ +2015-04-25 tdbdump diff --git a/lib/tdb/man/tdbrestore.8.xml b/lib/tdb/man/tdbrestore.8.xml index 64c0ba2..034db53 100644 --- a/lib/tdb/man/tdbrestore.8.xml +++ b/lib/tdb/man/tdbrestore.8.xml @@ -1,6 +1,7 @@ +2015-04-25 tdbrestore diff --git a/lib/tdb/man/tdbtool.8.xml b/lib/tdb/man/tdbtool.8.xml index cedc7eb..9a9b95e 100644 --- a/lib/tdb/man/tdbtool.8.xml +++ b/lib/tdb/man/tdbtool.8.xml @@ -1,6 +1,7 @@ +2015-04-25 tdbtool -- 1.9.1 From ac1e047ae40f2e8b8b86cd75b497e1a1a4269c7e Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Tue, 28 Apr 2015 07:42:43 +0300 Subject: [PATCH 05/13] tdb: introduce tdb_chainlock_read_nonblock(), a nonblock variant of tdb_chainlock_read() Signed-off-by: Alexander Drozdov Reviewed-by: Volker Lendecke Reviewed-by: Jeremy Allison (cherry picked from commit e4fe0aff5252b37536eec4a130d4e40a05a56ddb) --- lib/tdb/common/lock.c | 7 +++++++ lib/tdb/include/tdb.h | 1 + 2 files changed, 8 insertions(+) diff --git a/lib/tdb/common/lock.c b/lib/tdb/common/lock.c index 6644c40..195dbb5 100644 --- a/lib/tdb/common/lock.c +++ b/lib/tdb/common/lock.c @@ -858,6 +858,13 @@ _PUBLIC_ int tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key) return tdb_unlock(tdb, BUCKET(tdb->hash_fn(&key)), F_RDLCK); } +_PUBLIC_ int tdb_chainlock_read_nonblock(struct tdb_context *tdb, TDB_DATA key) +{ + int ret = tdb_lock_nonblock(tdb, BUCKET(tdb->hash_fn(&key)), F_RDLCK); + tdb_trace_1rec_ret(tdb, "tdb_chainlock_read_nonblock", key, ret); + return ret; +} + /* record lock stops delete underneath */ int tdb_lock_record(struct tdb_context *tdb, tdb_off_t off) { diff --git a/lib/tdb/include/tdb.h b/lib/tdb/include/tdb.h index 03e429c..8478ca2 100644 --- a/lib/tdb/include/tdb.h +++ b/lib/tdb/include/tdb.h @@ -884,6 +884,7 @@ int tdb_chainlock(struct tdb_context *tdb, TDB_DATA key); int tdb_chainlock_nonblock(struct tdb_context *tdb, TDB_DATA key); int tdb_chainunlock(struct tdb_context *tdb, TDB_DATA key); int tdb_chainlock_read(struct tdb_context *tdb, TDB_DATA key); +int tdb_chainlock_read_nonblock(struct tdb_context *tdb, TDB_DATA key); int tdb_chainunlock_read(struct tdb_context *tdb, TDB_DATA key); int tdb_chainlock_mark(struct tdb_context *tdb, TDB_DATA key); int tdb_chainlock_unmark(struct tdb_context *tdb, TDB_DATA key); -- 1.9.1 From aa53326f0e4f020ef4efc719e8151c74abd2ba7a Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Tue, 28 Apr 2015 10:31:43 +0300 Subject: [PATCH 06/13] tdb: version 1.3.5 ABI change: tdb_chainlock_read_nonblock() has been added. Signed-off-by: Alexander Drozdov Reviewed-by: Volker Lendecke Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Wed Apr 29 00:05:29 CEST 2015 on sn-devel-104 (cherry picked from commit 3f35c1d52ee77f7cabd52dd503565cec360f1de2) --- lib/tdb/ABI/tdb-1.3.5.sigs | 69 ++++++++++++++++++++++++++++++++++++++++++++++ lib/tdb/wscript | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 lib/tdb/ABI/tdb-1.3.5.sigs diff --git a/lib/tdb/ABI/tdb-1.3.5.sigs b/lib/tdb/ABI/tdb-1.3.5.sigs new file mode 100644 index 0000000..2545c99 --- /dev/null +++ b/lib/tdb/ABI/tdb-1.3.5.sigs @@ -0,0 +1,69 @@ +tdb_add_flags: void (struct tdb_context *, unsigned int) +tdb_append: int (struct tdb_context *, TDB_DATA, TDB_DATA) +tdb_chainlock: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_mark: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_nonblock: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_read: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_read_nonblock: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_unmark: int (struct tdb_context *, TDB_DATA) +tdb_chainunlock: int (struct tdb_context *, TDB_DATA) +tdb_chainunlock_read: int (struct tdb_context *, TDB_DATA) +tdb_check: int (struct tdb_context *, int (*)(TDB_DATA, TDB_DATA, void *), void *) +tdb_close: int (struct tdb_context *) +tdb_delete: int (struct tdb_context *, TDB_DATA) +tdb_dump_all: void (struct tdb_context *) +tdb_enable_seqnum: void (struct tdb_context *) +tdb_error: enum TDB_ERROR (struct tdb_context *) +tdb_errorstr: const char *(struct tdb_context *) +tdb_exists: int (struct tdb_context *, TDB_DATA) +tdb_fd: int (struct tdb_context *) +tdb_fetch: TDB_DATA (struct tdb_context *, TDB_DATA) +tdb_firstkey: TDB_DATA (struct tdb_context *) +tdb_freelist_size: int (struct tdb_context *) +tdb_get_flags: int (struct tdb_context *) +tdb_get_logging_private: void *(struct tdb_context *) +tdb_get_seqnum: int (struct tdb_context *) +tdb_hash_size: int (struct tdb_context *) +tdb_increment_seqnum_nonblock: void (struct tdb_context *) +tdb_jenkins_hash: unsigned int (TDB_DATA *) +tdb_lock_nonblock: int (struct tdb_context *, int, int) +tdb_lockall: int (struct tdb_context *) +tdb_lockall_mark: int (struct tdb_context *) +tdb_lockall_nonblock: int (struct tdb_context *) +tdb_lockall_read: int (struct tdb_context *) +tdb_lockall_read_nonblock: int (struct tdb_context *) +tdb_lockall_unmark: int (struct tdb_context *) +tdb_log_fn: tdb_log_func (struct tdb_context *) +tdb_map_size: size_t (struct tdb_context *) +tdb_name: const char *(struct tdb_context *) +tdb_nextkey: TDB_DATA (struct tdb_context *, TDB_DATA) +tdb_null: dptr = 0xXXXX, dsize = 0 +tdb_open: struct tdb_context *(const char *, int, int, int, mode_t) +tdb_open_ex: struct tdb_context *(const char *, int, int, int, mode_t, const struct tdb_logging_context *, tdb_hash_func) +tdb_parse_record: int (struct tdb_context *, TDB_DATA, int (*)(TDB_DATA, TDB_DATA, void *), void *) +tdb_printfreelist: int (struct tdb_context *) +tdb_remove_flags: void (struct tdb_context *, unsigned int) +tdb_reopen: int (struct tdb_context *) +tdb_reopen_all: int (int) +tdb_repack: int (struct tdb_context *) +tdb_rescue: int (struct tdb_context *, void (*)(TDB_DATA, TDB_DATA, void *), void *) +tdb_runtime_check_for_robust_mutexes: bool (void) +tdb_set_logging_function: void (struct tdb_context *, const struct tdb_logging_context *) +tdb_set_max_dead: void (struct tdb_context *, int) +tdb_setalarm_sigptr: void (struct tdb_context *, volatile sig_atomic_t *) +tdb_store: int (struct tdb_context *, TDB_DATA, TDB_DATA, int) +tdb_summary: char *(struct tdb_context *) +tdb_transaction_cancel: int (struct tdb_context *) +tdb_transaction_commit: int (struct tdb_context *) +tdb_transaction_prepare_commit: int (struct tdb_context *) +tdb_transaction_start: int (struct tdb_context *) +tdb_transaction_start_nonblock: int (struct tdb_context *) +tdb_transaction_write_lock_mark: int (struct tdb_context *) +tdb_transaction_write_lock_unmark: int (struct tdb_context *) +tdb_traverse: int (struct tdb_context *, tdb_traverse_func, void *) +tdb_traverse_read: int (struct tdb_context *, tdb_traverse_func, void *) +tdb_unlock: int (struct tdb_context *, int, int) +tdb_unlockall: int (struct tdb_context *) +tdb_unlockall_read: int (struct tdb_context *) +tdb_validate_freelist: int (struct tdb_context *, int *) +tdb_wipe_all: int (struct tdb_context *) diff --git a/lib/tdb/wscript b/lib/tdb/wscript index 00c244a..49627f7 100644 --- a/lib/tdb/wscript +++ b/lib/tdb/wscript @@ -1,7 +1,7 @@ #!/usr/bin/env python APPNAME = 'tdb' -VERSION = '1.3.4' +VERSION = '1.3.5' blddir = 'bin' -- 1.9.1 From ce0c05e5f9fb7887496c1e47376ef09c6a4378e7 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 10 Jun 2015 14:33:35 +0200 Subject: [PATCH 07/13] lib/replace: add signal related configure checks These should be in a central place available for all lib/replace users instead of having each caller do its own checks. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11326 Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke Reviewed-by: Amitay Isaacs (cherry picked from commit a82acb076e78eb513fb1228595b220f61377e23c) --- lib/replace/wscript | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/replace/wscript b/lib/replace/wscript index 1949448..a594e23 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -135,6 +135,7 @@ def configure(conf): conf.CHECK_TYPE_IN('sa_family_t', 'sys/socket.h') conf.CHECK_TYPE_IN('sig_atomic_t', 'signal.h', define='HAVE_SIG_ATOMIC_T_TYPE') + conf.CHECK_FUNCS('sigsetmask siggetmask sigprocmask sigblock sigaction sigset') conf.CHECK_FUNCS_IN('''inet_ntoa inet_aton inet_ntop inet_pton connect gethostbyname getaddrinfo getnameinfo freeaddrinfo gai_strerror socketpair''', -- 1.9.1 From 79181c993dee8d30ce0776aaee143283ea5e13e9 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 10 Jun 2015 14:33:35 +0200 Subject: [PATCH 08/13] lib/util: remove signal related configure checks These are done in lib/replace now. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11326 Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke Reviewed-by: Amitay Isaacs (cherry picked from commit 322f4b76e5cae9f2513ef68d7d86ad19d4a88244) --- lib/util/wscript_configure | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/util/wscript_configure b/lib/util/wscript_configure index 8d8dc87..78e4a8e 100644 --- a/lib/util/wscript_configure +++ b/lib/util/wscript_configure @@ -7,8 +7,6 @@ if Options.options.disable_fault_handling: # backtrace could be in libexecinfo or in libc conf.CHECK_FUNCS_IN('backtrace backtrace_symbols', 'execinfo', checklibc=True, headers='execinfo.h') -conf.CHECK_FUNCS('sigprocmask sigblock sigaction') - conf.CHECK_STRUCTURE_MEMBER('struct statvfs', 'f_frsize', define='HAVE_FRSIZE', headers='sys/statvfs.h') # all the different ways of doing statfs -- 1.9.1 From efb5878cf0068439646177752d63d7ad01144b6a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 10 Jun 2015 14:33:35 +0200 Subject: [PATCH 09/13] s3:wscript: remove signal related configure checks These are done in lib/replace now. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11326 Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke Reviewed-by: Amitay Isaacs Autobuild-User(master): Amitay Isaacs Autobuild-Date(master): Wed Jun 10 17:50:41 CEST 2015 on sn-devel-104 (cherry picked from commit a5fd4ca0dbe4f7cbf0d3ead4214af283aabe4790) --- source3/wscript | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source3/wscript b/source3/wscript index bf025fc..a5c8358 100644 --- a/source3/wscript +++ b/source3/wscript @@ -83,7 +83,7 @@ def configure(conf): conf.CHECK_FUNCS('strtol strchr strupr chflags') conf.CHECK_FUNCS('getrlimit fsync fdatasync setpgid') conf.CHECK_FUNCS('setsid glob strpbrk crypt16 getauthuid') - conf.CHECK_FUNCS('sigprocmask sigblock sigaction sigset innetgr') + conf.CHECK_FUNCS('innetgr') conf.CHECK_FUNCS('initgroups select poll rdchk getgrnam getgrent pathconf') conf.CHECK_FUNCS('setpriv setgidx setuidx setgroups syscall sysconf') conf.CHECK_FUNCS('atexit grantpt posix_openpt fallocate posix_fallocate') @@ -380,7 +380,7 @@ rdchk _read __read _readdir __readdir _seekdir __seekdir select setenv setgidx setgroups setlocale setluid setmntent setpgid setpriv setsid setuidx -shmget shm_open sigaction sigblock sigprocmask sigset +shmget shm_open _stat __stat statvfs strcasecmp strchr strpbrk strsignal strtol strupr sysconf sysctl sysctlbyname __sys_llseek syslog _telldir __telldir timegm -- 1.9.1 From 74156fb8e4fd6b813740197de58debbea5ba1f1a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 12 Jun 2015 12:13:23 +0200 Subject: [PATCH 10/13] wafsamba: let CHECK_DECLS() find enum values In the current state this still generates the same config.h at least on ubuntu 14.04 amd64. Signed-off-by: Stefan Metzmacher Reviewed-by: Michael Adam (cherry picked from commit ff072a633660780cf72d204f4620c664957a6072) --- buildtools/wafsamba/samba_autoconf.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index cb33630..0b74adc 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -229,7 +229,18 @@ def CHECK_DECLS(conf, vars, reverse=False, headers=None, always=False): headers=headers, msg='Checking for declaration of %s' % v, always=always): - ret = False + if not CHECK_CODE(conf, + ''' + return (int)%s; + ''' % (v), + execute=False, + link=False, + msg='Checking for declaration of %s (as enum)' % v, + local_include=False, + headers=headers, + define=define, + always=always): + ret = False return ret -- 1.9.1 From 9a0ac66c4975153e0c1decebb2e2f0d0733199d7 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 12 Jun 2015 11:01:21 +0200 Subject: [PATCH 11/13] lib/replace: fix PTHREAD_MUTEX_ROBUST fallback to PTHREAD_MUTEX_ROBUST_NP on solaris 11 Without this we got the following defines in config.h: #define HAVE_DECL_PTHREAD_MUTEXATTR_SETROBUST_NP 1 #define HAVE_DECL_PTHREAD_MUTEX_CONSISTENT_NP 1 #define HAVE_PTHREAD_MUTEXATTR_SETROBUST 1 #define HAVE_PTHREAD_MUTEX_CONSISTENT 1 #define HAVE_ROBUST_MUTEXES 1 #define USE_TDB_MUTEX_LOCKING 1 And the build failed with PTHREAD_MUTEX_ROBUST being unknown. Note that PTHREAD_MUTEX_ROBUST and PTHREAD_MUTEX_ROBUST_NP are enum values while they're defines on solaris 11 BUG: https://bugzilla.samba.org/show_bug.cgi?id=11319 Signed-off-by: Stefan Metzmacher Reviewed-by: Michael Adam (cherry picked from commit 34cf1d213ec0261af41ef6a16f5b37e5015c614b) --- lib/replace/system/threads.h | 9 +++------ lib/replace/wscript | 6 ++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/replace/system/threads.h b/lib/replace/system/threads.h index 25d3502..fe6d0fb 100644 --- a/lib/replace/system/threads.h +++ b/lib/replace/system/threads.h @@ -29,15 +29,12 @@ #if defined(HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP) && \ !defined(HAVE_PTHREAD_MUTEXATTR_SETROBUST) - #define pthread_mutexattr_setrobust pthread_mutexattr_setrobust_np +#endif -/* - * We assume that PTHREAD_MUTEX_ROBUST_NP goes along with - * pthread_mutexattr_setrobust_np() - */ +#if defined(HAVE_DECL_PTHREAD_MUTEX_ROBUST_NP) && \ + !defined(HAVE_DECL_PTHREAD_MUTEX_ROBUST) #define PTHREAD_MUTEX_ROBUST PTHREAD_MUTEX_ROBUST_NP - #endif #if defined(HAVE_PTHREAD_MUTEX_CONSISTENT_NP) && \ diff --git a/lib/replace/wscript b/lib/replace/wscript index a594e23..a1fb8c8 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -458,6 +458,10 @@ removeea setea conf.CHECK_FUNCS_IN('pthread_mutexattr_setrobust_np', 'pthread', checklibc=True, headers='pthread.h') + conf.CHECK_DECLS('PTHREAD_MUTEX_ROBUST', headers='pthread.h') + if not conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEX_ROBUST'): + conf.CHECK_DECLS('PTHREAD_MUTEX_ROBUST_NP', headers='pthread.h') + conf.CHECK_DECLS('pthread_mutex_consistent', headers='pthread.h') if not conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEX_CONSISTENT'): conf.CHECK_DECLS('pthread_mutex_consistent_np', @@ -471,6 +475,8 @@ removeea setea if ((conf.CONFIG_SET('HAVE_PTHREAD_MUTEXATTR_SETROBUST') or conf.CONFIG_SET('HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP')) and + (conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEX_ROBUST') or + conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEX_ROBUST_NP')) and (conf.CONFIG_SET('HAVE_PTHREAD_MUTEX_CONSISTENT') or conf.CONFIG_SET('HAVE_PTHREAD_MUTEX_CONSISTENT_NP'))): conf.DEFINE('HAVE_ROBUST_MUTEXES', 1) -- 1.9.1 From e16c17e2d4cd15a35c8ace3acc3c8c07a8a90b9e Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 12 Jun 2015 11:01:21 +0200 Subject: [PATCH 12/13] lib/replace: remove unused HAVE_DECL_PTHREAD_{MUTEXATTR_SETROBUST,MUTEX_CONSISTENT}_NP checks BUG: https://bugzilla.samba.org/show_bug.cgi?id=11319 Signed-off-by: Stefan Metzmacher Reviewed-by: Michael Adam (cherry picked from commit 89dcfbf3f45f448e515a1da82e09002a0aafb7b4) --- lib/replace/wscript | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/replace/wscript b/lib/replace/wscript index a1fb8c8..a8182e3 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -447,11 +447,6 @@ removeea setea if conf.CONFIG_SET('HAVE_PTHREAD'): - conf.CHECK_DECLS('pthread_mutexattr_setrobust', headers='pthread.h') - if not conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEXATTR_SETROBUST'): - conf.CHECK_DECLS('pthread_mutexattr_setrobust_np', - headers='pthread.h') - conf.CHECK_FUNCS_IN('pthread_mutexattr_setrobust', 'pthread', checklibc=True, headers='pthread.h') if not conf.CONFIG_SET('HAVE_PTHREAD_MUTEXATTR_SETROBUST'): @@ -462,11 +457,6 @@ removeea setea if not conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEX_ROBUST'): conf.CHECK_DECLS('PTHREAD_MUTEX_ROBUST_NP', headers='pthread.h') - conf.CHECK_DECLS('pthread_mutex_consistent', headers='pthread.h') - if not conf.CONFIG_SET('HAVE_DECL_PTHREAD_MUTEX_CONSISTENT'): - conf.CHECK_DECLS('pthread_mutex_consistent_np', - headers='pthread.h') - conf.CHECK_FUNCS_IN('pthread_mutex_consistent', 'pthread', checklibc=True, headers='pthread.h') if not conf.CONFIG_SET('HAVE_PTHREAD_MUTEX_CONSISTENT'): -- 1.9.1 From 05d96d21ac273bb4a71f39d4cfb4f105c1696695 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 12 Jun 2015 09:10:39 +0200 Subject: [PATCH 13/13] tdb: version 1.3.6 * Fix runtime detection for robust mutexes in the standalone build. bug #11326 * Possible fix for the build with robust mutexes on solaris 11 bug #11319 Signed-off-by: Stefan Metzmacher Reviewed-by: Michael Adam Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Fri Jun 12 19:55:34 CEST 2015 on sn-devel-104 (cherry picked from commit 4ddf78a282c85e84b6201a79b707fad9487f3ccd) --- lib/tdb/ABI/tdb-1.3.6.sigs | 69 ++++++++++++++++++++++++++++++++++++++++++++++ lib/tdb/wscript | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 lib/tdb/ABI/tdb-1.3.6.sigs diff --git a/lib/tdb/ABI/tdb-1.3.6.sigs b/lib/tdb/ABI/tdb-1.3.6.sigs new file mode 100644 index 0000000..2545c99 --- /dev/null +++ b/lib/tdb/ABI/tdb-1.3.6.sigs @@ -0,0 +1,69 @@ +tdb_add_flags: void (struct tdb_context *, unsigned int) +tdb_append: int (struct tdb_context *, TDB_DATA, TDB_DATA) +tdb_chainlock: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_mark: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_nonblock: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_read: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_read_nonblock: int (struct tdb_context *, TDB_DATA) +tdb_chainlock_unmark: int (struct tdb_context *, TDB_DATA) +tdb_chainunlock: int (struct tdb_context *, TDB_DATA) +tdb_chainunlock_read: int (struct tdb_context *, TDB_DATA) +tdb_check: int (struct tdb_context *, int (*)(TDB_DATA, TDB_DATA, void *), void *) +tdb_close: int (struct tdb_context *) +tdb_delete: int (struct tdb_context *, TDB_DATA) +tdb_dump_all: void (struct tdb_context *) +tdb_enable_seqnum: void (struct tdb_context *) +tdb_error: enum TDB_ERROR (struct tdb_context *) +tdb_errorstr: const char *(struct tdb_context *) +tdb_exists: int (struct tdb_context *, TDB_DATA) +tdb_fd: int (struct tdb_context *) +tdb_fetch: TDB_DATA (struct tdb_context *, TDB_DATA) +tdb_firstkey: TDB_DATA (struct tdb_context *) +tdb_freelist_size: int (struct tdb_context *) +tdb_get_flags: int (struct tdb_context *) +tdb_get_logging_private: void *(struct tdb_context *) +tdb_get_seqnum: int (struct tdb_context *) +tdb_hash_size: int (struct tdb_context *) +tdb_increment_seqnum_nonblock: void (struct tdb_context *) +tdb_jenkins_hash: unsigned int (TDB_DATA *) +tdb_lock_nonblock: int (struct tdb_context *, int, int) +tdb_lockall: int (struct tdb_context *) +tdb_lockall_mark: int (struct tdb_context *) +tdb_lockall_nonblock: int (struct tdb_context *) +tdb_lockall_read: int (struct tdb_context *) +tdb_lockall_read_nonblock: int (struct tdb_context *) +tdb_lockall_unmark: int (struct tdb_context *) +tdb_log_fn: tdb_log_func (struct tdb_context *) +tdb_map_size: size_t (struct tdb_context *) +tdb_name: const char *(struct tdb_context *) +tdb_nextkey: TDB_DATA (struct tdb_context *, TDB_DATA) +tdb_null: dptr = 0xXXXX, dsize = 0 +tdb_open: struct tdb_context *(const char *, int, int, int, mode_t) +tdb_open_ex: struct tdb_context *(const char *, int, int, int, mode_t, const struct tdb_logging_context *, tdb_hash_func) +tdb_parse_record: int (struct tdb_context *, TDB_DATA, int (*)(TDB_DATA, TDB_DATA, void *), void *) +tdb_printfreelist: int (struct tdb_context *) +tdb_remove_flags: void (struct tdb_context *, unsigned int) +tdb_reopen: int (struct tdb_context *) +tdb_reopen_all: int (int) +tdb_repack: int (struct tdb_context *) +tdb_rescue: int (struct tdb_context *, void (*)(TDB_DATA, TDB_DATA, void *), void *) +tdb_runtime_check_for_robust_mutexes: bool (void) +tdb_set_logging_function: void (struct tdb_context *, const struct tdb_logging_context *) +tdb_set_max_dead: void (struct tdb_context *, int) +tdb_setalarm_sigptr: void (struct tdb_context *, volatile sig_atomic_t *) +tdb_store: int (struct tdb_context *, TDB_DATA, TDB_DATA, int) +tdb_summary: char *(struct tdb_context *) +tdb_transaction_cancel: int (struct tdb_context *) +tdb_transaction_commit: int (struct tdb_context *) +tdb_transaction_prepare_commit: int (struct tdb_context *) +tdb_transaction_start: int (struct tdb_context *) +tdb_transaction_start_nonblock: int (struct tdb_context *) +tdb_transaction_write_lock_mark: int (struct tdb_context *) +tdb_transaction_write_lock_unmark: int (struct tdb_context *) +tdb_traverse: int (struct tdb_context *, tdb_traverse_func, void *) +tdb_traverse_read: int (struct tdb_context *, tdb_traverse_func, void *) +tdb_unlock: int (struct tdb_context *, int, int) +tdb_unlockall: int (struct tdb_context *) +tdb_unlockall_read: int (struct tdb_context *) +tdb_validate_freelist: int (struct tdb_context *, int *) +tdb_wipe_all: int (struct tdb_context *) diff --git a/lib/tdb/wscript b/lib/tdb/wscript index 49627f7..528b9e7 100644 --- a/lib/tdb/wscript +++ b/lib/tdb/wscript @@ -1,7 +1,7 @@ #!/usr/bin/env python APPNAME = 'tdb' -VERSION = '1.3.5' +VERSION = '1.3.6' blddir = 'bin' -- 1.9.1