Fix distribution detection for gentoo
[zfs.git] / configure
index 8815554..c636d53 100755 (executable)
--- a/configure
+++ b/configure
@@ -11785,16 +11785,18 @@ $as_echo_n "checking linux distribution... " >&6; }
                VENDOR=redhat ;
        elif test -f /etc/fedora-release ; then
                VENDOR=fedora ;
-       elif test -f /etc/lsb-release ; then
-               VENDOR=ubuntu ;
+       elif test -f /etc/gentoo-release ; then
+               VENDOR=gentoo ;
        elif test -f /etc/debian_version ; then
                VENDOR=debian ;
        elif test -f /etc/SuSE-release ; then
                VENDOR=sles ;
        elif test -f /etc/slackware-version ; then
                VENDOR=slackware ;
-       elif test -f /etc/gentoo-release ; then
-               VENDOR=gentoo ;
+       elif test -f /etc/lsb-release ; then
+               VENDOR=ubuntu ;
+       elif test -f /etc/lunar.release ; then
+               VENDOR=lunar ;
        else
                VENDOR= ;
        fi
@@ -11805,12 +11807,14 @@ $as_echo "$VENDOR" >&6; }
        { $as_echo "$as_me:$LINENO: checking default package type" >&5
 $as_echo_n "checking default package type... " >&6; }
        case "$VENDOR" in
-               fedora)     DEFAULT_PACKAGE=rpm ;;
                redhat)     DEFAULT_PACKAGE=rpm ;;
-               sles)       DEFAULT_PACKAGE=rpm ;;
+               fedora)     DEFAULT_PACKAGE=rpm ;;
                ubuntu)     DEFAULT_PACKAGE=deb ;;
                debian)     DEFAULT_PACKAGE=deb ;;
+               sles)       DEFAULT_PACKAGE=rpm ;;
                slackware)  DEFAULT_PACKAGE=tgz ;;
+               gentoo)     DEFAULT_PACKAGE=tgz ;;
+               lunar)      DEFAULT_PACKAGE=tgz ;;
                *)          DEFAULT_PACKAGE=rpm ;;
        esac
 
@@ -11821,12 +11825,14 @@ $as_echo "$DEFAULT_PACKAGE" >&6; }
        { $as_echo "$as_me:$LINENO: checking default init script type" >&5
 $as_echo_n "checking default init script type... " >&6; }
        case "$VENDOR" in
+               redhat)     DEFAULT_INIT_SCRIPT=redhat ;;
                fedora)     DEFAULT_INIT_SCRIPT=fedora ;;
-               redhat)     DEFAULT_INIT_SCRIPT=fedora ;;
-               sles)       DEFAULT_INIT_SCRIPT=lsb ;;
                ubuntu)     DEFAULT_INIT_SCRIPT=lsb ;;
                debian)     DEFAULT_INIT_SCRIPT=lsb ;;
+               sles)       DEFAULT_INIT_SCRIPT=lsb ;;
                slackware)  DEFAULT_INIT_SCRIPT=lsb ;;
+               gentoo)     DEFAULT_INIT_SCRIPT=gentoo ;;
+               lunar)      DEFAULT_INIT_SCRIPT=lunar ;;
                *)          DEFAULT_INIT_SCRIPT=lsb ;;
        esac
 
@@ -12372,7 +12378,7 @@ int
 main (void)
 {
 
-               fmode_t *ptr;
+               fmode_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -12437,7 +12443,7 @@ int
 main (void)
 {
 
-               int val;
+               int val __attribute__ ((unused));
                val = KOBJ_NAME_LEN;
 
   ;
@@ -12583,7 +12589,7 @@ int
 main (void)
 {
 
-               struct block_device *bdev;
+               struct block_device *bdev = NULL;
                invalidate_bdev(bdev);
 
   ;
@@ -12782,7 +12788,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = (1 << BIO_RW_FAILFAST);
 
   ;
@@ -12848,7 +12854,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = ((1 << BIO_RW_FAILFAST_DEV) |
                         (1 << BIO_RW_FAILFAST_TRANSPORT) |
                         (1 << BIO_RW_FAILFAST_DRIVER));
@@ -12916,7 +12922,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = REQ_FAILFAST_MASK;
 
   ;
@@ -12985,7 +12991,7 @@ main (void)
 {
 
                void (*wanted_end_io)(struct bio *, int) = NULL;
-               bio_end_io_t *local_end_io;
+               bio_end_io_t *local_end_io __attribute__ ((unused));
 
                local_end_io = wanted_end_io;
 
@@ -13053,7 +13059,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = BIO_RW_SYNC;
 
   ;
@@ -13119,7 +13125,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = BIO_RW_SYNCIO;
 
   ;
@@ -13185,7 +13191,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = REQ_SYNC;
 
   ;
@@ -13994,7 +14000,7 @@ int
 main (void)
 {
 
-               struct super_block sb;
+               struct super_block sb __attribute__ ((unused));
 
                sb.s_xattr = xattr_handlers;
 
@@ -14063,7 +14069,7 @@ main (void)
 
                int (*get)(struct dentry *dentry, const char *name,
                    void *buffer, size_t size, int handler_flags) = NULL;
-               struct xattr_handler xops;
+               struct xattr_handler xops __attribute__ ((unused));
 
                xops.get = get;
 
@@ -14133,7 +14139,7 @@ main (void)
                int (*set)(struct dentry *dentry, const char *name,
                    const void *buffer, size_t size, int flags,
                    int handler_flags) = NULL;
-               struct xattr_handler xops;
+               struct xattr_handler xops __attribute__ ((unused));
 
                xops.set = set;
 
@@ -14201,7 +14207,7 @@ main (void)
 {
 
                int (*fsync) (struct file *, int datasync) = NULL;
-               struct file_operations fops;
+               struct file_operations fops __attribute__ ((unused));
 
                fops.fsync = fsync;
 
@@ -14269,7 +14275,7 @@ main (void)
 {
 
                void (*evict_inode) (struct inode *) = NULL;
-               struct super_operations sops;
+               struct super_operations sops __attribute__ ((unused));
 
                sops.evict_inode = evict_inode;
 
@@ -14358,13 +14364,94 @@ _ACEOF
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether symbol d_obtain_alias is exported" >&5
+$as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; }
+       grep -q -E '[[:space:]]d_obtain_alias[[:space:]]' \
+               $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/dcache.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" "$LINUX/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_D_OBTAIN_ALIAS 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_D_OBTAIN_ALIAS 1
+_ACEOF
+
+       fi
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol check_disk_size_change is exported" >&5
+$as_echo_n "checking whether symbol check_disk_size_change is exported... " >&6; }
+       grep -q -E '[[:space:]]check_disk_size_change[[:space:]]' \
+               $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/block_dev.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(check_disk_size_change)" "$LINUX/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CHECK_DISK_SIZE_CHANGE 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CHECK_DISK_SIZE_CHANGE 1
+_ACEOF
+
+       fi
+
+
+
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
 
-                       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
+                       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wno-unused-but-set-variable"
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
        KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
 
 
@@ -16417,7 +16504,7 @@ int
 main (void)
 {
 
-               fmode_t *ptr;
+               fmode_t *ptr __attribute__ ((unused));
 
   ;
   return 0;
@@ -16482,7 +16569,7 @@ int
 main (void)
 {
 
-               int val;
+               int val __attribute__ ((unused));
                val = KOBJ_NAME_LEN;
 
   ;
@@ -16628,7 +16715,7 @@ int
 main (void)
 {
 
-               struct block_device *bdev;
+               struct block_device *bdev = NULL;
                invalidate_bdev(bdev);
 
   ;
@@ -16827,7 +16914,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = (1 << BIO_RW_FAILFAST);
 
   ;
@@ -16893,7 +16980,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = ((1 << BIO_RW_FAILFAST_DEV) |
                         (1 << BIO_RW_FAILFAST_TRANSPORT) |
                         (1 << BIO_RW_FAILFAST_DRIVER));
@@ -16961,7 +17048,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = REQ_FAILFAST_MASK;
 
   ;
@@ -17030,7 +17117,7 @@ main (void)
 {
 
                void (*wanted_end_io)(struct bio *, int) = NULL;
-               bio_end_io_t *local_end_io;
+               bio_end_io_t *local_end_io __attribute__ ((unused));
 
                local_end_io = wanted_end_io;
 
@@ -17098,7 +17185,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = BIO_RW_SYNC;
 
   ;
@@ -17164,7 +17251,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = BIO_RW_SYNCIO;
 
   ;
@@ -17230,7 +17317,7 @@ int
 main (void)
 {
 
-               int flags;
+               int flags __attribute__ ((unused));
                flags = REQ_SYNC;
 
   ;
@@ -18039,7 +18126,7 @@ int
 main (void)
 {
 
-               struct super_block sb;
+               struct super_block sb __attribute__ ((unused));
 
                sb.s_xattr = xattr_handlers;
 
@@ -18108,7 +18195,7 @@ main (void)
 
                int (*get)(struct dentry *dentry, const char *name,
                    void *buffer, size_t size, int handler_flags) = NULL;
-               struct xattr_handler xops;
+               struct xattr_handler xops __attribute__ ((unused));
 
                xops.get = get;
 
@@ -18178,7 +18265,7 @@ main (void)
                int (*set)(struct dentry *dentry, const char *name,
                    const void *buffer, size_t size, int flags,
                    int handler_flags) = NULL;
-               struct xattr_handler xops;
+               struct xattr_handler xops __attribute__ ((unused));
 
                xops.set = set;
 
@@ -18246,7 +18333,7 @@ main (void)
 {
 
                int (*fsync) (struct file *, int datasync) = NULL;
-               struct file_operations fops;
+               struct file_operations fops __attribute__ ((unused));
 
                fops.fsync = fsync;
 
@@ -18314,7 +18401,7 @@ main (void)
 {
 
                void (*evict_inode) (struct inode *) = NULL;
-               struct super_operations sops;
+               struct super_operations sops __attribute__ ((unused));
 
                sops.evict_inode = evict_inode;
 
@@ -18403,13 +18490,94 @@ _ACEOF
 
 
 
+       { $as_echo "$as_me:$LINENO: checking whether symbol d_obtain_alias is exported" >&5
+$as_echo_n "checking whether symbol d_obtain_alias is exported... " >&6; }
+       grep -q -E '[[:space:]]d_obtain_alias[[:space:]]' \
+               $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/dcache.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(d_obtain_alias)" "$LINUX/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_D_OBTAIN_ALIAS 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_D_OBTAIN_ALIAS 1
+_ACEOF
+
+       fi
+
+
+
+       { $as_echo "$as_me:$LINENO: checking whether symbol check_disk_size_change is exported" >&5
+$as_echo_n "checking whether symbol check_disk_size_change is exported... " >&6; }
+       grep -q -E '[[:space:]]check_disk_size_change[[:space:]]' \
+               $LINUX_OBJ/$LINUX_SYMBOLS 2>/dev/null
+       rc=$?
+       if test $rc -ne 0; then
+               export=0
+               for file in fs/block_dev.c; do
+                       grep -q -E "EXPORT_SYMBOL.*(check_disk_size_change)" "$LINUX/$file" 2>/dev/null
+                       rc=$?
+                       if test $rc -eq 0; then
+                               export=1
+                               break;
+                       fi
+               done
+               if test $export -eq 0; then
+                       { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+
+               else
+                       { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CHECK_DISK_SIZE_CHANGE 1
+_ACEOF
+
+               fi
+       else
+               { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CHECK_DISK_SIZE_CHANGE 1
+_ACEOF
+
+       fi
+
+
+
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
 
-                       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
+                       KERNELCPPFLAGS="$KERNELCPPFLAGS -Wno-unused-but-set-variable"
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
        KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""