From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ShgdU-00071i-LG for qemu-devel@nongnu.org; Thu, 21 Jun 2012 08:37:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ShgdN-00087z-V6 for qemu-devel@nongnu.org; Thu, 21 Jun 2012 08:37:20 -0400 Received: from cantor2.suse.de ([195.135.220.15]:49425 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ShgM7-00027z-2o for qemu-devel@nongnu.org; Thu, 21 Jun 2012 08:19:23 -0400 Message-ID: <4FE31145.7040906@suse.de> Date: Thu, 21 Jun 2012 14:19:17 +0200 From: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= MIME-Version: 1.0 References: <4FE29366.6050101@ozlabs.ru> <4FE2F912.1080904@suse.de> <4FE303A9.9010308@ozlabs.ru> In-Reply-To: <4FE303A9.9010308@ozlabs.ru> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] hw/Makefile.objs question List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: Paolo Bonzini , Alex Williamson , qemu-devel@nongnu.org, Anthony Liguori Am 21.06.2012 13:21, schrieb Alexey Kardashevskiy: > On 21/06/12 20:36, Andreas F=C3=A4rber wrote: >> Am 21.06.2012 05:22, schrieb Alexey Kardashevskiy: >>> I am trying to compile the very last qemu with vfio_pci enabled. VFIO= _PCI is added as below: >>> >>> ./configure: >>> >>> case "$target_arch2" in >>> i386|x86_64|ppc64) >>> if test "$vfio_pci" =3D "yes" -a "$target_softmmu" =3D "yes" ; t= hen >>> echo "CONFIG_VFIO_PCI=3Dy" >> $config_target_mak >>> fi >>> esac >>> >>> >>> ./Makefile.target: >>> >>> # VFIO PCI device assignment >>> obj-$(CONFIG_VFIO_PCI) +=3D vfio_pci.o >>> >>> >>> And it worked before. However it does not anymore as it seems that ev= erything in hw/ (and vfio_pci.c >>> as well as is in hw/ and it is a device) can be only compiled via hw/= Makefile.objs and >>> hw/ppc/Makefile.objs (my platform is POWER), it is ignored if to keep= it as is. >>> >>> So I have to move "obj-$(CONFIG_VFIO_PCI) +=3D vfio_pci.o" to hw/Make= file.objs (and change obj- to >>> hw-obj-) but the hw/Makefile.objs does not include (directly or indir= ectly) generated >>> ppc64-softmmu/config-target.mak with CONFIG_VFIO_PCI=3Dy. >>> >>> What is the correct solution? >> >> If the file compiles the same for all three, put CONFIG_VFIO_PCI=3Dy i= nto >> default-configs/{i386,x86_64,ppc64}-softmmu.mak and do >> hw-obj-$(CONFIG_VFIO_PCI) +=3D in hw/Makefile.objs. >=20 >=20 > It only compiles with ./configure --enable-vfio-pci which may or may no= t set CONFIG_VFIO_PCI to "y". > Your proposal makes it always "y" (for selected platforms). Apply some creativity, there's surely examples around. The question is whether the contents of vfio_pci.o changes or not. If not, then you only need to build it once in libhwX/, depending on $config_target_mak, and link to the appropriate targets. If it accesses CPU internals then it must be built per target. >> Otherwise, add to hw/{i386,ppc}/Makefile.objs - or with Anthony's >> proposal from yesterday hw/Makefile.objs becomes possible, too. >=20 > Again, it will be unconditional "y". No, in this case the condition would be set from configure as before, it only moves from Makefile.target to the appropriate Makefile.objs. Note that to limit it to ppc64 (as opposed to ppc) some additional ifeq check would be needed, as before. Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=C3=B6rffer; HRB 16746 AG N=C3=BC= rnberg