[SCM] Samba Shared Repository - branch v3-5-test updated

Karolin Seeger kseeger at samba.org
Mon Feb 15 08:40:41 MST 2010


The branch, v3-5-test has been updated
       via  3e43399... s3: by default don't use pthread pool support (cherry picked from commit 118725c892e445fcc1dc5947cb919cf99c49373f)
       via  6be22ad... s3:nsswitch: also use pthread CFLAGS for the nsswitch modules that might require it (cherry picked from commit 55d65ba7213e5b30711b5b5939d53e3d3990d86a)
       via  ff2a738... s3: fix build on Tru64 after it broke with deactivating pthread pool support (cherry picked from commit acedd1c8320afa672ca70c6594bc90ccb7e75a6a)
       via  1797fbd... s3: link thread objects in libsmbclient only and adjust linker flags (cherry picked from commit a20b43f23f2254edb1fcd6d3916dd57e6a4778ee)
       via  cbe55a5... s3: syntax fix (cherry picked from commit 1f7e97a8a257b3280ca14168adf2d59ca9e1074c)
       via  2229652... s3: get pthread detection also on HP-UX right (cherry picked from commit 6bade10a1eb21689613770f9a54e0a080663029c)
       via  6325383... s3: fix detection and flags for using pthread
      from  4ad86ab... spoolss: disable GetPrinterDriver level 101 (as called by XP).

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit 3e43399fdbeb5a145c9e2d22390a8758f515fe36
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Jan 29 12:42:25 2010 +0100

    s3: by default don't use pthread pool support
    (cherry picked from commit 118725c892e445fcc1dc5947cb919cf99c49373f)
    
    The last seven patches address bug #6983 (Build with aio support fails on Debian
    Sarge).

commit 6be22ad4248c1cfd3fad22818ca9fc3c3894b4c0
Author: Björn Jacke <bj at sernet.de>
Date:   Thu Feb 4 11:03:55 2010 +0100

    s3:nsswitch: also use pthread CFLAGS for the nsswitch modules that might require it
    (cherry picked from commit 55d65ba7213e5b30711b5b5939d53e3d3990d86a)

commit ff2a7386e625a041448ff9f64862d83533a191b8
Author: Björn Jacke <bj at sernet.de>
Date:   Thu Feb 4 10:35:45 2010 +0100

    s3: fix build on Tru64 after it broke with deactivating pthread pool support
    (cherry picked from commit acedd1c8320afa672ca70c6594bc90ccb7e75a6a)

commit 1797fbd5837f430424305b9a00dcbe64c916f8ae
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Jan 29 15:23:29 2010 +0100

    s3: link thread objects in libsmbclient only and adjust linker flags
    (cherry picked from commit a20b43f23f2254edb1fcd6d3916dd57e6a4778ee)

commit cbe55a58727775383a53482037aa425608b917a1
Author: Björn Jacke <bj at sernet.de>
Date:   Wed Jan 27 23:43:23 2010 +0100

    s3: syntax fix
    (cherry picked from commit 1f7e97a8a257b3280ca14168adf2d59ca9e1074c)

commit 22296525a64d21351c21511cf6a0464d7d577314
Author: Björn Jacke <bj at sernet.de>
Date:   Wed Jan 27 18:54:55 2010 +0100

    s3: get pthread detection also on HP-UX right
    (cherry picked from commit 6bade10a1eb21689613770f9a54e0a080663029c)

commit 63253834e5008991c2e4011d22fb825262b255e5
Author: Björn Jacke <bj at sernet.de>
Date:   Tue Jan 26 00:17:10 2010 +0100

    s3: fix detection and flags for using pthread
    
    I hope this fixes the build on Tru64, IRIX and maybe bug #6983
    (cherry picked from commit 5439e1a03f66ff9722987f908babfd71ebd698f1)

-----------------------------------------------------------------------

Summary of changes:
 source3/Makefile.in                  |   27 +++++++-----
 source3/configure.in                 |   79 ++++++++++++++++++++++++++++------
 source3/libsmb/libsmb_thread_posix.c |    4 ++
 3 files changed, 86 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 6474231..f84ed20 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -72,7 +72,8 @@ NSCD_LIBS=@NSCD_LIBS@
 UUID_LIBS=@UUID_LIBS@
 LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@
 LIBWBCLIENT_LIBS=@LIBWBCLIENT_LIBS@
-WINBIND_NSS_PTHREAD=@WINBIND_NSS_PTHREAD@
+PTHREAD_LDFLAGS=@PTHREAD_LDFLAGS@
+PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
 DNSSD_LIBS=@DNSSD_LIBS@
 AVAHI_LIBS=@AVAHI_LIBS@
 POPT_LIBS=@POPTLIBS@
@@ -921,6 +922,10 @@ RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
 PAM_WINBIND_OBJ = ../nsswitch/pam_winbind.o localedir.o $(WBCOMMON_OBJ) \
 		  $(LIBREPLACE_OBJ) @BUILD_INIPARSER@
 
+LIBSMBCLIENT_THREAD_OBJ = \
+			libsmb/libsmb_thread_impl.o \
+			libsmb/libsmb_thread_posix.o
+
 LIBSMBCLIENT_OBJ0 = \
 		    libsmb/libsmb_cache.o \
 		    libsmb/libsmb_compat.o \
@@ -933,9 +938,7 @@ LIBSMBCLIENT_OBJ0 = \
 		    libsmb/libsmb_server.o \
 		    libsmb/libsmb_stat.o \
 		    libsmb/libsmb_xattr.o \
-		    libsmb/libsmb_setget.o \
-		    libsmb/libsmb_thread_impl.o \
-		    libsmb/libsmb_thread_posix.o
+		    libsmb/libsmb_setget.o
 
 LIBSMBCLIENT_OBJ1 = $(LIBSMBCLIENT_OBJ0) \
 		    $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
@@ -1396,6 +1399,8 @@ wins : SHOWFLAGS @WINBIND_WINS_NSS@
 
 modules:: SHOWFLAGS $(MODULES)
 
+$(LIBSMBCLIENT_THREAD_OBJ) ../nsswitch/wins.o ../nsswitch/winbind_nss_linux.o: EXTRA_FLAGS := $(PTHREAD_CFLAGS)
+
 #####################################################################
 ## Perl IDL Compiler
 samba3-idl::
@@ -1454,11 +1459,11 @@ MAKEDIR = || exec false; \
 	  exec false; fi || exec false
 
 # Run a static checker.
-CHECK_CC = $(CC_CHECKER) $(CFLAGS) $(PICFLAG) -c $< -o $@
+CHECK_CC = $(CC_CHECKER) $(CFLAGS) $(EXTRA_FLAGS) $(PICFLAG) -c $< -o $@
 # Compile a source file.
-COMPILE_CC = $(CC) $(CFLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC = $(CC) $(CFLAGS) $(EXTRA_FLAGS) $(PICFLAG) -c $< -o $@
 # Compile a source file with the installation paths defined.
-COMPILE_CC_PATH = $(CC) $(PATH_FLAGS) $(CFLAGS) $(PICFLAG) -c $< -o $@
+COMPILE_CC_PATH = $(CC) $(PATH_FLAGS) $(CFLAGS) $(EXTRA_FLAGS) $(PICFLAG) -c $< -o $@
 
 COMPILE = $(COMPILE_CC)
 
@@ -2274,11 +2279,11 @@ LIBSMBCLIENT_HEADERS=$(srcdir)/include/libsmbclient.h
 $(LIBSMBCLIENT_SYMS): $(LIBSMBCLIENT_HEADERS)
 	@$(MKSYMS_SH) $(AWK) $@ $(LIBSMBCLIENT_HEADERS)
 
-$(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_SYMS) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
+$(LIBSMBCLIENT_SHARED_TARGET_SONAME): $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) $(LIBSMBCLIENT_SYMS) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
 	@echo Linking shared library $@
-	@$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) \
+	@$(SHLD_DSO) $(LIBSMBCLIENT_OBJ) $(LIBSMBCLIENT_THREAD_OBJ) \
 		$(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(LIBWBCLIENT_LIBS) $(LIBS) \
-		$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) \
+		$(KRB5LIBS) $(LDAP_LIBS) $(NSCD_LIBS) $(ZLIB_LIBS) $(PTHREAD_LDFLAGS) \
 		@SONAMEFLAG@`basename $@`
 
 $(LIBSMBCLIENT_SHARED_TARGET): $(LIBSMBCLIENT_SHARED_TARGET_SONAME)
@@ -2526,7 +2531,7 @@ bin/vlp at EXEEXT@: $(BINARY_PREREQS) $(VLP_OBJ) $(LIBTDB)
 @WINBIND_NSS@: $(BINARY_PREREQS) $(WINBIND_NSS_OBJ)
 	@echo "Linking $@"
 	@$(SHLD) $(WINBIND_NSS_LDSHFLAGS) -o $@ $(WINBIND_NSS_OBJ) \
-		$(LIBREPLACE_LIBS) $(WINBIND_NSS_PTHREAD) \
+		$(LIBREPLACE_LIBS) $(PTHREAD_LDFLAGS) \
 		@SONAMEFLAG@`basename $@`@NSSSONAMEVERSIONSUFFIX@
 
 @WINBIND_WINS_NSS@: $(BINARY_PREREQS) $(WINBIND_WINS_NSS_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT)
diff --git a/source3/configure.in b/source3/configure.in
index 449645f..0529a69 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -657,7 +657,7 @@ AUTH_LIBS="${AUTH_LIBS} ${CRYPT_LIBS}"
 
 AC_CHECK_HEADERS(aio.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h)
 AC_CHECK_HEADERS(unistd.h grp.h sys/id.h memory.h alloca.h)
-AC_CHECK_HEADERS(limits.h float.h pthread.h libintl.h)
+AC_CHECK_HEADERS(limits.h float.h libintl.h)
 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h sys/sysctl.h)
 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h)
@@ -5985,7 +5985,6 @@ WINBIND_NSS="../nsswitch/libnss_winbind.$SHLIBEXT"
 WINBIND_WINS_NSS="../nsswitch/libnss_wins.$SHLIBEXT"
 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
 NSSSONAMEVERSIONSUFFIX=""
-WINBIND_NSS_PTHREAD=""
 
 case "$host_os" in
 	*linux* | gnu* | k*bsd*-gnu | kopensolaris*-gnu)
@@ -6127,12 +6126,6 @@ else
         AC_MSG_RESULT(no$winbind_no_reason)
 fi
 
-AC_CHECK_LIB(pthread, pthread_mutex_lock, [WINBIND_NSS_PTHREAD="-lpthread"
-			AC_DEFINE(HAVE_PTHREAD, 1, [whether pthread exists])
-			samba_cv_HAVE_PTHREAD=yes],
-			samba_cv_HAVE_PTHREAD=no)
-
-AC_SUBST(WINBIND_NSS_PTHREAD)
 AC_SUBST(WINBIND_NSS)
 AC_SUBST(WINBIND_WINS_NSS)
 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
@@ -6288,16 +6281,76 @@ if test x"$enable_avahi" != x"no"; then
     fi
 fi
 
+
+#################################################
+# Set pthread stuff
+
+PTHREAD_CFLAGS=error
+PTHREAD_LDFLAGS=error
+
+# If it's error, then the user didn't 
+# define it.
+if test "x$PTHREAD_LDFLAGS" = xerror; then
+  AC_CHECK_LIB(pthread, pthread_attr_init, [
+	     PTHREAD_CFLAGS="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
+	     PTHREAD_LDFLAGS="-lpthread" ])
+fi
+
+if test "x$PTHREAD_LDFLAGS" = xerror; then
+  AC_CHECK_LIB(pthreads, pthread_attr_init, [
+	     PTHREAD_CFLAGS="-D_THREAD_SAFE"
+	     PTHREAD_LDFLAGS="-lpthreads" ])
+fi
+
+if test "x$PTHREAD_LDFLAGS" = xerror; then
+   AC_CHECK_LIB(c_r, pthread_attr_init, [
+		PTHREAD_CFLAGS="-D_THREAD_SAFE -pthread"
+		PTHREAD_LDFLAGS="-pthread" ])
+fi
+
+if test "x$PTHREAD_LDFLAGS" = xerror; then
+   AC_CHECK_FUNC(pthread_attr_init, [
+		 PTHREAD_CFLAGS="-D_REENTRANT"
+		 PTHREAD_LDFLAGS="-lpthread" ])
+fi
+
+# especially for HP-UX, where the AC_CHECK_FUNC macro fails to test for
+# pthread_attr_init. On pthread_mutex_lock it works there...
+if test "x$PTHREAD_LDFLAGS" = xerror; then
+   AC_CHECK_LIB(pthread, pthread_mutex_lock, [
+		PTHREAD_CFLAGS="-D_REENTRANT"
+		PTHREAD_LDFLAGS="-lpthread" ])
+fi
+
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_LDFLAGS)
+
+samba_cv_HAVE_PTHREAD=no
+if test x"$PTHREAD_CFLAGS" != xerror -a x"$PTHREAD_LDFLAGS" != xerror; then
+	samba_cv_HAVE_PTHREAD=yes
+	# now check for pthread.h with pthread-correct CFLAGS and LDFLAGS:
+	ac_save_CFLAGS=$CFLAGS
+	CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+	ac_save_LDFLAGS=$LDFLAGS
+	LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS"
+	AC_CHECK_HEADERS(pthread.h)
+	CFLAGS=$ac_save_CFLAGS
+	LDFLAGS=$ac_save_LDFLAGS
+fi
+
 #################################################
 # Check if user wants pthreadpool support
 
 AC_ARG_ENABLE(pthreadpool,
-[AS_HELP_STRING([--enable-pthreadpool], [Enable pthreads pool helper support (default=auto)])])
+[AS_HELP_STRING([--enable-pthreadpool], [Enable pthreads pool helper support (default=no)])])
+
+if test x"$enable_pthreadpool" = xyes -a x"$samba_cv_HAVE_PTHREAD" != x"yes"; then
+	AC_MSG_ERROR([pthreadpool support cannot be enabled when pthread support was found])
+fi
 
-if test x"$enable_pthreadpool" != x"no" -a x"$samba_cv_HAVE_PTHREAD" = x"yes"; then
-    AC_TRY_LINK([#include "pthread.h"],
-    [pthread_create(NULL, NULL, NULL, NULL)],
-		    ,LIBS="$LIBS -lpthread")
+if test x"$enable_pthreadpool" = x"yes" -a x"$samba_cv_HAVE_PTHREAD" = x"yes"; then
+    LIBS="$LIBS $PTHREAD_LDFLAGS"
+    CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
     AC_DEFINE(WITH_PTHREADPOOL, 1, [Whether to include pthreadpool helpers])
     AC_SUBST(PTHREADPOOL_OBJ, "lib/pthreadpool.o")
 fi
diff --git a/source3/libsmb/libsmb_thread_posix.c b/source3/libsmb/libsmb_thread_posix.c
index 6519659..8c8299d 100644
--- a/source3/libsmb/libsmb_thread_posix.c
+++ b/source3/libsmb/libsmb_thread_posix.c
@@ -17,8 +17,11 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+
 #include "includes.h"
+#ifdef HAVE_PTHREAD_H
 #include <pthread.h>
+#endif
 #include "libsmbclient.h"
 #include "libsmb_internal.h"
 
@@ -47,3 +50,4 @@ smbc_thread_posix(void)
 {
         smb_thread_set_functions(&tf);
 }
+


-- 
Samba Shared Repository


More information about the samba-cvs mailing list