summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-06-05 14:35:15 +1000
committerAndrew Bartlett <abartlet@samba.org>2012-06-05 09:48:05 +0200
commit659f588c7a0576d53688109d7d3fd24df9bdbde1 (patch)
treeecd04e1b1dd062ee31c137ca239e4594fb7a805f
parentfcd1aa82ac154677c085caf0ed5edf205544e341 (diff)
downloadsamba-659f588c7a0576d53688109d7d3fd24df9bdbde1.tar.gz
build: Add test for HAVE_BROKEN_POSIX_FALLOCATE to waf build
This was previously only in the autoconf build, added in 3264a98f. Andrew Bartlett
-rwxr-xr-xsource3/wscript13
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/wscript b/source3/wscript
index 7136c477141..397718496ae 100755
--- a/source3/wscript
+++ b/source3/wscript
@@ -803,6 +803,19 @@ int i; i = PAM_RADIO_TYPE;
execute=True,
msg='Checking whether fcntl locking is available')
+# glibc up to 2.3.6 had dangerously broken posix_fallocate(). DON'T USE IT.
+ if not conf.CHECK_CODE('''
+#define _XOPEN_SOURCE 600
+#include <stdlib.h>
+#if defined(__GLIBC__) && ((__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 4))
+#error probably broken posix_fallocate
+#endif
+''',
+ '_HAVE_UNBROKEN_POSIX_FALLOCATE',
+ msg='for broken posix_fallocate'):
+ conf.DEFINE('HAVE_BROKEN_POSIX_FALLOCATE', '1')
+
+
conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtim.tv_nsec',
define='HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC') # Linux, Solaris
conf.CHECK_STRUCTURE_MEMBER('struct stat', 'st_mtimensec',