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