]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3-waf: add check for sendfile on solaris.
authorGünther Deschner <gd@samba.org>
Tue, 22 Feb 2011 20:33:06 +0000 (21:33 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 22 Feb 2011 20:52:19 +0000 (21:52 +0100)
Guenther

source3/wscript

index 8892c461c02d3aa53fbbb5023d78a28f04bc5809..d3b7916fe4d6d761a10a3b75820c41858335dc1b 100644 (file)
@@ -1403,6 +1403,56 @@ main() {
                 conf.DEFINE('HAVE_SENDFILE', '1')
                 conf.DEFINE('HPUX_SENDFILE_API', '1')
                 conf.DEFINE('WITH_SENDFILE', '1')
+       elif (host_os.rfind('solaris') > -1):
+            conf.CHECK_FUNCS_IN('sendfile', 'sendfilev')
+            conf.CHECK_CODE('''
+                           #include <sys/sendfile.h>
+                           int sfvcnt;
+                           size_t xferred;
+                           struct sendfilevec vec[2];
+                           ssize_t nwritten;
+                           int tofd;
+                           sfvcnt = 2;
+                           vec[0].sfv_fd = SFV_FD_SELF;
+                           vec[0].sfv_flag = 0;
+                           vec[0].sfv_off = 0;
+                           vec[0].sfv_len = 0;
+                           vec[1].sfv_fd = 0;
+                           vec[1].sfv_flag = 0;
+                           vec[1].sfv_off = 0;
+                           vec[1].sfv_len = 0;
+                           nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
+                           ''',
+                           '_HAVE_SENDFILEV64',
+                           msg='Checking for solaris sendfilev64 support')
+            conf.CHECK_CODE('''
+                           #include <sys/sendfile.h>,
+                           int sfvcnt;
+                           size_t xferred;
+                           struct sendfilevec vec[2];
+                           ssize_t nwritten;
+                           int tofd;
+                           sfvcnt = 2;
+                           vec[0].sfv_fd = SFV_FD_SELF;
+                           vec[0].sfv_flag = 0;
+                           vec[0].sfv_off = 0;
+                           vec[0].sfv_len = 0;
+                           vec[1].sfv_fd = 0;
+                           vec[1].sfv_flag = 0;
+                           vec[1].sfv_off = 0;
+                           vec[1].sfv_len = 0;
+                           nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
+                           ''',
+                           '_HAVE_SENDFILEV',
+                           msg='Checking for solaris sendfilev support')
+            if conf.CONFIG_SET('_HAVE_SENDFILEV64'):
+                conf.DEFINE('HAVE_SENDFILEV64', '1')
+                conf.DEFINE('SOLARIS_SENDFILE_API', '1')
+                conf.DEFINE('WITH_SENDFILE', '1')
+            elif conf.CONFIG_SET('_HAVE_SENDFILEV'):
+                conf.DEFINE('HAVE_SENDFILEV', '1')
+                conf.DEFINE('SOLARIS_SENDFILE_API', '1')
+                conf.DEFINE('WITH_SENDFILE', '1')
 
     default_static_modules=TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam
                                       auth_sam auth_unix auth_winbind auth_wbc auth_server