diff options
author | Avi Kivity <avi@redhat.com> | 2011-11-09 14:44:52 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-11-09 12:06:20 -0600 |
commit | 4f26f2b6f2fba52b13f4c2ad1790f46c96a0923e (patch) | |
tree | 60dd9786e1b5504d84a44a3c50f54ae31815cd1a | |
parent | 1bf6ccd372aeb8e1a36da35fa15cf24e42f7e0b7 (diff) | |
download | qemu-4f26f2b6f2fba52b13f4c2ad1790f46c96a0923e.tar.gz qemu-4f26f2b6f2fba52b13f4c2ad1790f46c96a0923e.tar.bz2 qemu-4f26f2b6f2fba52b13f4c2ad1790f46c96a0923e.zip |
configure: fix detection for xattr.h on modern distributions
Modern distributions place xattr.h in /usr/include/sys, and fold
libattr.so into libc. They also don't have an ENOATTR.
Make configure detect this, and add a qemu-xattr.h file that
directs the #include to the right place.
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rwxr-xr-x | configure | 12 | ||||
-rw-r--r-- | hw/9pfs/virtio-9p-handle.c | 2 | ||||
-rw-r--r-- | hw/9pfs/virtio-9p-local.c | 2 | ||||
-rw-r--r-- | hw/9pfs/virtio-9p-posix-acl.c | 2 | ||||
-rw-r--r-- | hw/9pfs/virtio-9p-xattr.h | 2 | ||||
-rw-r--r-- | linux-user/syscall.c | 2 | ||||
-rw-r--r-- | qemu-xattr.h | 30 |
7 files changed, 45 insertions, 7 deletions
@@ -129,6 +129,7 @@ xen="" xen_ctrl_version="" linux_aio="" attr="" +libattr="" xfs="" vhost_net="no" @@ -1961,12 +1962,16 @@ if test "$attr" != "no" ; then cat > $TMPC <<EOF #include <stdio.h> #include <sys/types.h> -#include <attr/xattr.h> +#include <sys/xattr.h> int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; } EOF - if compile_prog "" "-lattr" ; then + if compile_prog "" "" ; then + attr=yes + # Older distros have <attr/xattr.h>, and need -lattr: + elif sed -i s,sys/xattr,attr/xattr, $TMPC && compile_prog "" "-lattr" ; then attr=yes LIBS="-lattr $LIBS" + libattr=yes else if test "$attr" = "yes" ; then feature_not_found "ATTR" @@ -3032,6 +3037,9 @@ fi if test "$attr" = "yes" ; then echo "CONFIG_ATTR=y" >> $config_host_mak fi +if test "$libattr" = "yes" ; then + echo "CONFIG_LIBATTR=y" >> $config_host_mak +fi if test "$linux" = "yes" ; then if test "$attr" = "yes" ; then echo "CONFIG_VIRTFS=y" >> $config_host_mak diff --git a/hw/9pfs/virtio-9p-handle.c b/hw/9pfs/virtio-9p-handle.c index c38e0e7863..0a778b48c4 100644 --- a/hw/9pfs/virtio-9p-handle.c +++ b/hw/9pfs/virtio-9p-handle.c @@ -19,7 +19,7 @@ #include <grp.h> #include <sys/socket.h> #include <sys/un.h> -#include <attr/xattr.h> +#include "qemu-xattr.h" #include <unistd.h> #include <linux/fs.h> #ifdef CONFIG_LINUX_MAGIC_H diff --git a/hw/9pfs/virtio-9p-local.c b/hw/9pfs/virtio-9p-local.c index 782dc0ab21..7f1c0894de 100644 --- a/hw/9pfs/virtio-9p-local.c +++ b/hw/9pfs/virtio-9p-local.c @@ -19,7 +19,7 @@ #include <grp.h> #include <sys/socket.h> #include <sys/un.h> -#include <attr/xattr.h> +#include "qemu-xattr.h" #include <linux/fs.h> #ifdef CONFIG_LINUX_MAGIC_H #include <linux/magic.h> diff --git a/hw/9pfs/virtio-9p-posix-acl.c b/hw/9pfs/virtio-9p-posix-acl.c index f5b392e180..a1948e3aff 100644 --- a/hw/9pfs/virtio-9p-posix-acl.c +++ b/hw/9pfs/virtio-9p-posix-acl.c @@ -12,7 +12,7 @@ */ #include <sys/types.h> -#include <attr/xattr.h> +#include "qemu-xattr.h" #include "hw/virtio.h" #include "virtio-9p.h" #include "fsdev/file-op-9p.h" diff --git a/hw/9pfs/virtio-9p-xattr.h b/hw/9pfs/virtio-9p-xattr.h index 247e414ebd..9437280c99 100644 --- a/hw/9pfs/virtio-9p-xattr.h +++ b/hw/9pfs/virtio-9p-xattr.h @@ -13,7 +13,7 @@ #ifndef _QEMU_VIRTIO_9P_XATTR_H #define _QEMU_VIRTIO_9P_XATTR_H -#include <attr/xattr.h> +#include "qemu-xattr.h" typedef struct xattr_operations { diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 9f5da36021..f227097801 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -71,7 +71,7 @@ int __clone2(int (*fn)(void *), void *child_stack_base, #include <sys/epoll.h> #endif #ifdef CONFIG_ATTR -#include <attr/xattr.h> +#include "qemu-xattr.h" #endif #define termios host_termios diff --git a/qemu-xattr.h b/qemu-xattr.h new file mode 100644 index 0000000000..f910d96eaf --- /dev/null +++ b/qemu-xattr.h @@ -0,0 +1,30 @@ +/* + * Host xattr.h abstraction + * + * Copyright 2011 Red Hat Inc. and/or its affiliates + * + * Authors: + * Avi Kivity <avi@redhat.com> + * + * This work is licensed under the terms of the GNU GPL, version 2, or any + * later version. See the COPYING file in the top-level directory. + * + */ +#ifndef QEMU_XATTR_H +#define QEMU_XATTR_H + +/* + * Modern distributions (e.g. Fedora 15, have no libattr.so, place attr.h + * in /usr/include/sys, and don't have ENOATTR. + */ + +#include "config-host.h" + +#ifdef CONFIG_LIBATTR +# include <attr/xattr.h> +#else +# define ENOATTR ENODATA +# include <sys/xattr.h> +#endif + +#endif |