From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ScKMf-0001yh-9O for qemu-devel@nongnu.org; Wed, 06 Jun 2012 13:49:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ScKMa-0004kG-5t for qemu-devel@nongnu.org; Wed, 06 Jun 2012 13:49:48 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:60278) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ScKMZ-0004k0-Tx for qemu-devel@nongnu.org; Wed, 06 Jun 2012 13:49:44 -0400 Date: Wed, 6 Jun 2012 12:49:36 -0500 From: Serge Hallyn Message-ID: <20120606174936.GA9515@sergelap> References: <20120224195143.GA16353@vostro.hallyn.com> <4FCF855D.8050208@weilnetz.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4FCF855D.8050208@weilnetz.de> Subject: Re: [Qemu-devel] [BUG QEMU 1.1] virtio-9p-handle does not compile List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil Cc: "aliguori@us.ibm.com" , Stefano Stabellini , "qemu-devel@nongnu.org" , aneesh.kumar@linux.vnet.ibm.com Quoting Stefan Weil (sw@weilnetz.de): > Am 06.06.2012 12:50, schrieb Stefano Stabellini: > >Hi Anthony, > >currently QEMU 1.1 doesn't compile virtfs correctly on Ubuntu: > > > >qemu/hw/9pfs/virtio-9p-handle.c: In function ‘handle_update_file_cred’: > >qemu/hw/9pfs/virtio-9p-handle.c:66:58: error: ‘AT_EMPTY_PATH’ undeclared (first use in this function) > >qemu/hw/9pfs/virtio-9p-handle.c:66:58: note: each undeclared identifier is reported only once for each function it appears in > >qemu/hw/9pfs/virtio-9p-handle.c: In function ‘handle_lstat’: > >qemu/hw/9pfs/virtio-9p-handle.c:87:34: error: ‘AT_EMPTY_PATH’ undeclared (first use in this function) > >qemu/hw/9pfs/virtio-9p-handle.c: In function ‘handle_symlink’: > >qemu/hw/9pfs/virtio-9p-handle.c:314:62: error: ‘AT_EMPTY_PATH’ undeclared (first use in this function) > >qemu/hw/9pfs/virtio-9p-handle.c: In function ‘handle_link’: > >qemu/hw/9pfs/virtio-9p-handle.c:337:45: error: ‘AT_EMPTY_PATH’ undeclared (first use in this function) > >qemu/hw/9pfs/virtio-9p-handle.c: In function ‘handle_chown’: > >qemu/hw/9pfs/virtio-9p-handle.c:373:58: error: ‘AT_EMPTY_PATH’ undeclared (first use in this function) > > > > > >a patch was sent on the 24th of Feb to fix the issue (also see below): > > > >http://marc.info/?l=qemu-devel&m=133011313912147 > > > >Even though it is not particularly pretty, in the absence of better > >alternatives it should probably be applied. > > > >Cheers, > > > >Stefano > > > > > > > > > > > >On Fri, 24 Feb 2012, Serge Hallyn wrote: > >>If AT_EMPTY_PATH is not in one of the included files, go ahead and > >>define it. qemu won't compile on ubuntu for me without this. > >> > >>(Note - alternatively we could #include to pick > >>up the definitions there) > >> > >>Signed-off-by: Serge Hallyn > >>--- > >> hw/9pfs/virtio-9p-handle.c | 9 +++++++++ > >> 1 files changed, 9 insertions(+), 0 deletions(-) > >> > >>diff --git a/hw/9pfs/virtio-9p-handle.c b/hw/9pfs/virtio-9p-handle.c > >>index f96d17a..e403a84 100644 > >>--- a/hw/9pfs/virtio-9p-handle.c > >>+++ b/hw/9pfs/virtio-9p-handle.c > >>@@ -39,6 +39,15 @@ > >> #ifndef BTRFS_SUPER_MAGIC > >> #define BTRFS_SUPER_MAGIC 0x9123683E > >> #endif > >>+#ifndef AT_REMOVEDIR > >>+#define AT_REMOVEDIR 0x200 > >>+#endif > >>+#ifndef AT_EMPTY_PATH > >>+#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */ > >>+#endif > >>+#ifndef O_PATH > >>+#define O_PATH 010000000 > >>+#endif > >> > >> struct handle_data { > >> int mountfd; > >>-- > >>1.7.9 > > > The patch will fix the compiler error messages, but will the > resulting code work? Maybe it has runtime dependencies > (Linux kernel?) which should be checked at runtime. > > Would an enhanced test in configure be a better solution? > It could disable VirtFS automatically if the definitions > are missing. > > On Ubuntu Lenny, there is no definition for AT_EMPTY_PATH, (Debian Lenny I presume) True, the flag is newer than I thought. How could the configure option be enhanced? Could we simply grep for it in /usr/include/linux/fcntl.h, set an option saying it exists, then still do the #ifndef in hw/9pfs/virtio-9p-handle.c? (The problem is that the glibc and linux headers are currently not compatible... a separate problem, yes, but one I can't currently overcome AFAIK) > not even in linux/fcntl.h. > > Regards, > Stefan W. >