From 0d406ebd8e939938b9e7e559ac04679b32c34cf5 Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Mon, 9 Apr 2012 21:16:12 +0300 Subject: rely on sys/inotify.h for inotify sys/inotify.h was added to glibc 2.4 in 2006. --- source3/configure.in | 15 +++---------- source3/smbd/notify_inotify.c | 38 +------------------------------- source3/wscript | 12 ++++------ source4/ntvfs/sysdep/inotify.c | 29 +----------------------- source4/ntvfs/sysdep/wscript_configure | 11 ++------- 5 files changed, 11 insertions(+), 94 deletions(-) diff --git a/source3/configure.in b/source3/configure.in index 98714d5..30e44aa 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -2565,19 +2565,10 @@ if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes]) fi -AC_CACHE_CHECK([for inotify support],samba_cv_HAVE_INOTIFY,[ -AC_CHECK_HEADERS(linux/inotify.h asm/unistd.h sys/inotify.h) -AC_CHECK_FUNCS(inotify_init) -AC_HAVE_DECL(__NR_inotify_init, [#include ]) -], -samba_cv_HAVE_INOTIFY=yes, -samba_cv_HAVE_INOTIFY=no, -samba_cv_HAVE_INOTIFY=cross) +AC_CHECK_HEADER(sys/inotify.h) -if test x"$ac_cv_func_inotify_init" = x"yes"; then - if test x"$ac_cv_header_sys_inotify_h" = x"yes" -o x"$ac_cv_header_linux_inotify_h" = x"yes"; then - AC_DEFINE(HAVE_INOTIFY,1,[Whether kernel or sys has inotify support]) - fi +if test x"ac_cv_header_sys_inotify_h" = x"yes"; then + AC_DEFINE(HAVE_INOTIFY,1,[For inotify support]) fi ################################################# diff --git a/source3/smbd/notify_inotify.c b/source3/smbd/notify_inotify.c index 20f7098..7f463a1 100644 --- a/source3/smbd/notify_inotify.c +++ b/source3/smbd/notify_inotify.c @@ -27,45 +27,9 @@ #ifdef HAVE_INOTIFY -#if HAVE_SYS_INOTIFY_H #include -#else -#ifdef HAVE_ASM_TYPES_H -#include -#endif - -#ifndef HAVE_INOTIFY_INIT - -#include -#include - - -/* - glibc doesn't define these functions yet (as of March 2006) -*/ -static int inotify_init(void) -{ - return syscall(__NR_inotify_init); -} - -static int inotify_add_watch(int fd, const char *path, __u32 mask) -{ - return syscall(__NR_inotify_add_watch, fd, path, mask); -} - -static int inotify_rm_watch(int fd, int wd) -{ - return syscall(__NR_inotify_rm_watch, fd, wd); -} -#else - -#include - -#endif -#endif - -/* older glibc headers don't have these defines either */ +/* glibc < 2.5 headers don't have these defines */ #ifndef IN_ONLYDIR #define IN_ONLYDIR 0x01000000 #endif diff --git a/source3/wscript b/source3/wscript index 28ef0d9..ae0449d 100644 --- a/source3/wscript +++ b/source3/wscript @@ -115,11 +115,9 @@ long ret = splice(0,0,1,0,400,0); conf.CHECK_DECLS('splice', reverse=True, headers='fcntl.h') # Check for inotify support - conf.CHECK_HEADERS('linux/inotify.h asm/unistd.h sys/inotify.h') - conf.CHECK_FUNCS('inotify_init') - if "HAVE_INOTIFY_INIT" in conf.env: - if "HAVE_LINUX_INOTIFY_H" in conf.env or "HAVE_SYS_INOTIFY_H" in conf.env: - conf.DEFINE('HAVE_INOTIFY', 1) + conf.CHECK_HEADERS('sys/inotify.h') + if "HAVE_SYS_INOTIFY_H" in conf.env: + conf.DEFINE('HAVE_INOTIFY', 1) # Check for kernel change notify support conf.CHECK_CODE(''' @@ -256,7 +254,7 @@ getcwd _getcwd __getcwd getdents __getdents getdirentries getgrent getgrnam getgrouplist getgrset getmntent getpagesize getproplist get_proplist_entry getpwanam getpwent_r getrlimit gettext glob grantpt hstrerror initgroups innetgr -inotify_init listea listxattr +listea listxattr llseek _llseek __llseek _lseek __lseek _lstat __lstat lutimes __lxstat memalign mknod mlock mlockall munlock munlockall @@ -1021,8 +1019,6 @@ ssize_t err = posix_fadvise(0,0,0x80000,POSIX_FADV_WILLNEED); 'SYSCONF%s' % v, msg='Checking whether sysconf(%s) is available' % v) - conf.CHECK_DECLS('__NR_inotify_init', reverse=True, headers='asm/unistd.h') - conf.CHECK_CODE(''' #include #include diff --git a/source4/ntvfs/sysdep/inotify.c b/source4/ntvfs/sysdep/inotify.c index 28ea32e..d30bee2 100644 --- a/source4/ntvfs/sysdep/inotify.c +++ b/source4/ntvfs/sysdep/inotify.c @@ -29,36 +29,9 @@ #include "libcli/raw/smb.h" #include "param/param.h" -#if HAVE_SYS_INOTIFY_H #include -#else -/* for older glibc varients - we can remove this eventually */ -#include -#include -#ifndef HAVE_INOTIFY_INIT -/* - glibc doesn't define these functions yet (as of March 2006) -*/ -static int inotify_init(void) -{ - return syscall(__NR_inotify_init); -} - -static int inotify_add_watch(int fd, const char *path, __u32 mask) -{ - return syscall(__NR_inotify_add_watch, fd, path, mask); -} - -static int inotify_rm_watch(int fd, int wd) -{ - return syscall(__NR_inotify_rm_watch, fd, wd); -} -#endif -#endif - - -/* older glibc headers don't have these defines either */ +/* glibc < 2.5 headers don't have these defines */ #ifndef IN_ONLYDIR #define IN_ONLYDIR 0x01000000 #endif diff --git a/source4/ntvfs/sysdep/wscript_configure b/source4/ntvfs/sysdep/wscript_configure index f1e09dd..aa63000 100644 --- a/source4/ntvfs/sysdep/wscript_configure +++ b/source4/ntvfs/sysdep/wscript_configure @@ -1,16 +1,9 @@ #!/usr/bin/env python -conf.CHECK_HEADERS('linux/inotify.h asm/unistd.h sys/inotify.h', add_headers=False) +conf.CHECK_HEADERS('sys/inotify.h', add_headers=False) -conf.CHECK_FUNCS('inotify_init') - -conf.CHECK_VARIABLE('__NR_inotify_init') conf.CHECK_DECLS('F_SETLEASE', headers='linux/fcntl.h', reverse=True) conf.CHECK_DECLS('SA_SIGINFO', headers='signal.h', reverse=True) -conf.CHECK_DECLS('__NR_inotify_init', reverse=True, headers='asm/unistd.h') - -if (conf.CONFIG_SET('HAVE___NR_INOTIFY_INIT') and - (conf.CONFIG_SET('HAVE_LINUX_INOTIFY_H') or - conf.CONFIG_SET('HAVE_SYS_INOTIFY_H'))): +if (conf.CONFIG_SET('HAVE_SYS_INOTIFY_H')): conf.DEFINE('HAVE_LINUX_INOTIFY', 1) -- 1.7.9.5