Quoting Stefan Weil (s...@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<linux/fcntl.h> to pick > >>up the definitions there) > >> > >>Signed-off-by: Serge Hallyn<serge.hal...@canonical.com> > >>--- > >> 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. >