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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.kumar@xxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, 10 Oct 2011 18:30:28 +0800, Zhi Yong Wu <wuzhy@xxxxxxxxxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux