Re: [Qemu-devel] [PATCH] virtio-9p: fix QEMU build break

2011-10-17 Thread Aneesh Kumar K.V
On Tue, 18 Oct 2011 14:46:25 +1100, David Gibson  wrote:
> 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" 
> >  wrote:
> > > On Mon, 10 Oct 2011 18:30:28 +0800, Zhi Yong Wu 
> > >  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
> > > >   CCqapi-generated/qga-qapi-types.o
> > > >   LINK  qemu-ga
> > > >   CClibhw64/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 
> > +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.

I did send a pull request with the patch 

http://article.gmane.org/gmane.comp.emulators.qemu/120990

I will do a patch on top which will change the configure to what you
suggested above.

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


Re: [Qemu-devel] [PATCH] virtio-9p: fix QEMU build break

2011-10-17 Thread David Gibson
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" 
>  wrote:
> > On Mon, 10 Oct 2011 18:30:28 +0800, Zhi Yong Wu  
> > 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
> > >   CCqapi-generated/qga-qapi-types.o
> > >   LINK  qemu-ga
> > >   CClibhw64/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 
> +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