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

Günther Deschner gd at samba.org
Mon Feb 7 04:34:20 MST 2011


The branch, v3-6-test has been updated
       via  b12b094 s3-waf: add support for --with-aio-support.
       via  5cbb798 s3-waf: only build auth_netlogond in developer build.
      from  8fdf250 s3:rpc_server: fix make_external_rpc_pipe_p() and create read and write queues

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


- Log -----------------------------------------------------------------
commit b12b0940f888b303aba90d38448522a45f899fdd
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 7 11:40:06 2011 +0100

    s3-waf: add support for --with-aio-support.
    
    Guenther
    
    Autobuild-User: Günther Deschner <gd at samba.org>
    Autobuild-Date: Mon Feb  7 12:30:57 CET 2011 on sn-devel-104
    (cherry picked from commit bcdacff168daf3392a030290397e5dbe4bf58c47)

commit 5cbb798064a3f80f6f8bba7bfd36b83702dce685
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 7 11:39:42 2011 +0100

    s3-waf: only build auth_netlogond in developer build.
    
    Volker, please check.
    
    Guenther
    (cherry picked from commit 3a60e5496f4bac94506e996ce079b36fb99cb836)

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

Summary of changes:
 source3/wscript |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/wscript b/source3/wscript
index af54550..0dd71fb 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -54,6 +54,7 @@ def set_options(opt):
     opt.SAMBA3_ADD_OPTION('acl-support')
     opt.SAMBA3_ADD_OPTION('dnsupdate')
     opt.SAMBA3_ADD_OPTION('syslog')
+    opt.SAMBA3_ADD_OPTION('aio-support')
 
 
 def configure(conf):
@@ -405,9 +406,68 @@ return acl_get_perm_np(permset_d, perm);
 		'HAVE_EXPLICIT_LARGEFILE_SUPPORT',
 		msg="Checking whether large file support can be enabled")
 
+    if Options.options.with_aio_support:
+	conf.CHECK_FUNCS_IN('aio_read', 'aio')
+	conf.CHECK_FUNCS_IN('aio_read', 'rt')
+        conf.CHECK_CODE('struct aiocb a; return aio_read(&a);',
+			'HAVE_AIO',
+			msg='Checking for asynchronous io support',
+			headers='sys/types.h aio.h',
+			lib='aio rt')
+        conf.CHECK_CODE('struct aiocb64 a; return aio_read64(&a);',
+			'HAVE_AIO64',
+			msg='Checking for 64-bit asynchronous io support',
+			headers='sys/types.h aio.h',
+			lib='aio rt')
+        if conf.CONFIG_SET('HAVE_AIO64'):
+            conf.DEFINE('HAVE_AIOCB64', '1')
+            conf.DEFINE('WITH_AIO', '1')
+        elif conf.CONFIG_SET('HAVE_AIO'):
+            conf.DEFINE('WITH_AIO', '1')
+        if conf.CONFIG_SET('HAVE_AIO'):
+            conf.CHECK_CODE('struct aiocb a; return aio_read(&a);', 'HAVE_AIO_READ', msg='Checking for aio_read', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_write(&a);', 'HAVE_AIO_WRITE', msg='Checking for aio_write', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_fsync(1, &a);', 'HAVE_AIO_FSYNC', msg='Checking for aio_fsync', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_return(&a);', 'HAVE_AIO_RETURN', msg='Checking for aio_return', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_error(&a);', 'HAVE_AIO_ERROR', msg='Checking for aio_error', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_cancel(1, &a);', 'HAVE_AIO_CANCEL', msg='Checking for aio_cancel', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_suspend(&a, 1, NULL);', 'HAVE_AIO_SUSPEND', msg='Checking for aio_suspend', headers='aio.h', lib='aio rt')
+        if conf.CONFIG_SET('HAVE_AIO64'):
+            conf.CHECK_CODE('struct aiocb a; return aio_read64(&a);', 'HAVE_AIO_READ64', msg='Checking for aio_read64', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_write64(&a);', 'HAVE_AIO_WRITE64', msg='Checking for aio_write64', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_fsync64(1, &a);', 'HAVE_AIO_FSYNC64', msg='Checking for aio_fsync64', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_return64(&a);', 'HAVE_AIO_RETURN64', msg='Checking for aio_return64', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_error64(&a);', 'HAVE_AIO_ERROR64', msg='Checking for aio_error64', headers='aio.h', lib='aio rt')
+            conf.CHECK_CODE('struct aiocb a; return aio_cancel64(1, &a);', 'HAVE_AIO_CANCEL64', msg='Checking for aio_cancel64', headers='aio.h', lib='aio rt')
+	    conf.CHECK_CODE('struct aiocb a; return aio_suspend64(&a, 1, NULL);', 'HAVE_AIO_SUSPEND64', msg='Checking for aio_suspend64', headers='aio.h', lib='aio rt')
+    else:
+        conf.DEFINE('HAVE_NO_AIO', '1')
+
+    conf.CHECK_CODE('''
+struct msghdr msg;
+union {
+	struct cmsghdr cm;
+        char control[CMSG_SPACE(sizeof(int))];
+} control_un;
+msg.msg_control = control_un.control;
+msg.msg_controllen = sizeof(control_un.control);
+''',
+	'HAVE_MSGHDR_MSG_CONTROL',
+	msg='Checking if we can use msg_control for passing file descriptors',
+	headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h')
+    conf.CHECK_CODE('''
+struct msghdr msg;
+int fd;
+msg.msg_acctrights = (caddr_t) &fd;
+msg.msg_acctrightslen = sizeof(fd);
+''',
+	'HAVE_MSGHDR_MSG_ACCTRIGHTS',
+	msg='Checking if we can use msg_acctrights for passing file descriptors',
+	headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h')
+
     default_static_modules=TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam pdb_ldap
                                       auth_sam auth_unix auth_winbind auth_wbc auth_server
-                                      auth_domain auth_builtin auth_netlogond vfs_default
+                                      auth_domain auth_builtin vfs_default
                                       nss_info_template idmap_ldap idmap_tdb idmap_passdb
                                       idmap_nss''')
 
@@ -421,7 +481,7 @@ return acl_get_perm_np(permset_d, perm);
                                       vfs_time_audit idmap_autorid''')
 
     if Options.options.developer:
-        default_static_modules.extend(TO_LIST('pdb_ads'))
+        default_static_modules.extend(TO_LIST('pdb_ads auth_netlogond'))
         default_shared_modules.extend(TO_LIST('charset_weird perfcount_test'))
 
     if Options.options.with_acl_support and conf.CONFIG_SET('HAVE_POSIX_ACLS'):
@@ -436,6 +496,9 @@ return acl_get_perm_np(permset_d, perm);
     if conf.CONFIG_SET('HAVE_STATFS_F_FSID'):
 	default_shared_modules.extend(TO_LIST('vfs_fileid'))
 
+    if conf.CONFIG_SET('HAVE_AIO') and conf.CONFIG_SET('HAVE_MSGHDR_MSG_CONTROL') and conf.CONFIG_SET('HAVE_MSGHDR_MSG_ACCTRIGHTS'):
+	default_shared_modules.extend(TO_LIST('vfs_aio_fork'))
+
     explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',')
     explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',')
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list