On Tue, 18 Oct 2011 14:46:25 +1100, David Gibson <d...@au1.ibm.com> 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" 
> > <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.

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


Reply via email to