From patchwork Tue Nov 8 14:23:50 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Avi Kivity X-Patchwork-Id: 124380 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id D199CB6F9A for ; Wed, 9 Nov 2011 01:24:20 +1100 (EST) Received: from localhost ([::1]:38591 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNmb1-0003Qm-Eg for incoming@patchwork.ozlabs.org; Tue, 08 Nov 2011 09:24:15 -0500 Received: from eggs.gnu.org ([140.186.70.92]:59286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNmar-0003QG-Ch for qemu-devel@nongnu.org; Tue, 08 Nov 2011 09:24:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RNmap-0003Tw-Ke for qemu-devel@nongnu.org; Tue, 08 Nov 2011 09:24:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNmap-0003SD-An for qemu-devel@nongnu.org; Tue, 08 Nov 2011 09:24:03 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pA8EO14Q002616 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 8 Nov 2011 09:24:01 -0500 Received: from cleopatra.tlv.redhat.com (cleopatra.tlv.redhat.com [10.35.255.11]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id pA8EO03X007332; Tue, 8 Nov 2011 09:24:00 -0500 Received: from s01.tlv.redhat.com (s01.tlv.redhat.com [10.35.255.8]) by cleopatra.tlv.redhat.com (Postfix) with ESMTP id 27140250B98; Tue, 8 Nov 2011 16:23:56 +0200 (IST) From: Avi Kivity To: qemu-devel@nongnu.org, Anthony Liguori Date: Tue, 8 Nov 2011 16:23:50 +0200 Message-Id: <1320762230-14134-1-git-send-email-avi@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 1.0] configure: fix detection for xattr.h on modern distributions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 --- configure | 8 ++++++++ hw/9pfs/virtio-9p-handle.c | 2 +- hw/9pfs/virtio-9p-local.c | 2 +- hw/9pfs/virtio-9p-posix-acl.c | 2 +- hw/9pfs/virtio-9p-xattr.h | 2 +- linux-user/syscall.c | 2 +- qemu-xattr.h | 30 ++++++++++++++++++++++++++++++ 7 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 qemu-xattr.h diff --git a/configure b/configure index 9e5da44..5158015 100755 --- a/configure +++ b/configure @@ -129,6 +129,7 @@ xen="" xen_ctrl_version="" linux_aio="" attr="" +attr_in_sys="" xfs="" vhost_net="no" @@ -1967,6 +1968,10 @@ EOF if compile_prog "" "-lattr" ; then attr=yes LIBS="-lattr $LIBS" + # On Fedora 15, there is no attr/xattr.h, and no -lattr: + elif sed -i s,attr/,sys/, $TMPC && compile_prog "" "" ; then + attr=yes + attr_in_sys=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 "$attr_in_sys" = "yes" ; then + echo "CONFIG_ATTR_IN_SYS=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 c38e0e7..8d53cf0 100644 --- a/hw/9pfs/virtio-9p-handle.c +++ b/hw/9pfs/virtio-9p-handle.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #ifdef CONFIG_LINUX_MAGIC_H diff --git a/hw/9pfs/virtio-9p-local.c b/hw/9pfs/virtio-9p-local.c index 782dc0a..740f4e6 100644 --- a/hw/9pfs/virtio-9p-local.c +++ b/hw/9pfs/virtio-9p-local.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #ifdef CONFIG_LINUX_MAGIC_H #include diff --git a/hw/9pfs/virtio-9p-posix-acl.c b/hw/9pfs/virtio-9p-posix-acl.c index f5b392e..ff82cf0 100644 --- a/hw/9pfs/virtio-9p-posix-acl.c +++ b/hw/9pfs/virtio-9p-posix-acl.c @@ -12,7 +12,7 @@ */ #include -#include +#include #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 247e414..9437280 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 +#include "qemu-xattr.h" typedef struct xattr_operations { diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 9f5da36..e9c0566 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 #endif #ifdef CONFIG_ATTR -#include +#include #endif #define termios host_termios diff --git a/qemu-xattr.h b/qemu-xattr.h new file mode 100644 index 0000000..a1fb46b --- /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 + * + * 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_ATTR_IN_SYS +# define ENOATTR ENODATA +# include +#else +# include +#endif + +#endif