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.
> 

Reply via email to