On Mon, Oct 10, 2011 at 10:19:31PM +0530, Aneesh Kumar K.V wrote:
> On Mon, 10 Oct 2011 22:05:21 +0530, "Aneesh Kumar K.V" 
> <aneesh.ku...@linux.vnet.ibm.com> wrote:
> > On Mon, 10 Oct 2011 18:30:28 +0800, Zhi Yong Wu <wu...@linux.vnet.ibm.com> 
> > wrote:
> > > qemu build break due to the redefinition of struct file_handle. My 
> > > qemu.git/HEAD is 8acbc9b21d757a6be4f8492e547b8159703a0547
> > > 
> > > Below is the log:
> > > [root@f15 qemu]# make
> > >   CC    qapi-generated/qga-qapi-types.o
> > >   LINK  qemu-ga
> > >   CC    libhw64/9pfs/virtio-9p-handle.o
> > > /home/zwu/work/virt/qemu/hw/9pfs/virtio-9p-handle.c:31:8: error: 
> > > redefinition of "struct file_handle"
> > > /usr/include/bits/fcntl.h:254:8: note: originally defined here
> > > make[1]: *** [9pfs/virtio-9p-handle.o] Error 1
> > > make: *** [subdir-libhw64] Error 2
> > > 
> > > [root@f15 qemu]# rpm -qf /usr/include/bits/fcntl.h
> > > glibc-headers-2.13.90-9.x86_64
> > > 
> > 
> > Is this a backported glibc ? On my ubuntu system glibc 2.13 doesn't
> > provide struct file_handle. I also checked glib repo at
> > http://repo.or.cz/w/glibc.git. The commit introducing struct file_handle
> > is 
> > 
> > $ git describe --contains 158648c0bdda281e252a27c0200dd0ea6f4e0215
> > glibc-2.14~200
> > 
> > 
> 
> How about the below patch. This means that handle driver will only work
> with latest glibc. Even if i have latest kernel, with an older glibc
> handle fs driver backed will be disabled.

This looks like the right approach to me, but at least with my
compiler / libc combinations, the test program isn't quite right:
because the file_handle pointer is never dereferenced, gcc doesn't
complain even if it is undefined.


> diff --git a/configure b/configure
> index 24b8df4..0216c53 100755
> --- a/configure
> +++ b/configure
> @@ -2551,6 +2551,18 @@ EOF
>  fi
>  
>  ##########################################
> +# check if we have open_by_handle_at
> +
> +open_by_hande_at=no
> +cat > $TMPC << EOF
> +#include <fcntl.h>
> +int main(void) { struct file_handle *fh; open_by_handle_at(0, fh, 0); }

Instead, try this:

int main(void) { struct file_handle fh; open_by_handle_at(0, &fh, 0); }


I'd really like to see a patch along these lines merged, so I don't
have to keep hacking it up manually just to get qemu to compile.


-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to