qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] linux-user: remove nmi.c and fw-path-provider.c


From: Alexey Kardashevskiy
Subject: Re: [Qemu-devel] [PATCH] linux-user: remove nmi.c and fw-path-provider.c
Date: Tue, 7 Nov 2017 11:31:51 +1100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

On 06/11/17 21:15, Laurent Vivier wrote:
> Le 06/11/2017 à 01:44, Alexey Kardashevskiy a écrit :
>> On 04/11/17 06:38, Laurent Vivier wrote:
>>> linux-user binaries don't need firmware and NMI,
>>> so don't add them in this case, move QDEV
>>> firmware functions to qdev-fw.c
>>
>>
>> When configured with --target-list=ppc64-linux-user , config-host.mak gets
>> TARGET_DIRS=ppc64-linux-user  and I would expect CONFIG_SOFTMMU to be
>> disabled in Makefile#27 and qdev.c not to be compiled at all but this is
>> not happening, I wonder why...
> 
> this is driven by config-target.mak and config-target.h which are target
> specific.
> 
> for ppc64-linux-user, you have ppc64-linux-user/config-target.mak:
> ...
> CONFIG_LINUX_USER=y
> ...
> 
> for ppc64-softmmu/config-target.mak:
> ...
> CONFIG_SOFTMMU=y
> ...


Ah, I get it, Makefile.objs includes:
common-obj-y += hw/

and hw/Makefile.objs includes:
devices-dirs-y += core/

and hw/core/Makefile.objs includes:
common-obj-y += qdev.o

and nowhere it checks that CONFIG_SOFTMMU is not set as hw/core/* files
still export symbols needed by qom/cpu.c and TCG so doing as below does not
help. I'd suggest moving shared stuff out of hw/ and stop including hw/ in
linus-user builds (basically, apply the patch below and resolve
compile/link errors) but I suspect it is not that easy (or even correct)
but if it is correct, I could give it a try.


Paolo?



diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs
index f8d7a4aaed..be8d89dc0a 100644
--- a/hw/core/Makefile.objs
+++ b/hw/core/Makefile.objs
@@ -1,6 +1,6 @@
 # core qdev-related obj files, also used by *-user:
-common-obj-y += qdev.o qdev-properties.o
-common-obj-y += bus.o reset.o
+obj-$(CONFIG_SOFTMMU) += qdev.o qdev-properties.o bus.o
+common-obj-y += reset.o
 common-obj-y += fw-path-provider.o
 # irq.o needed for qdev GPIO handling:
 common-obj-y += irq.o
diff --git a/qom/Makefile.objs b/qom/Makefile.objs
index 516349eec3..479929705a 100644
--- a/qom/Makefile.objs
+++ b/qom/Makefile.objs
@@ -1,4 +1,4 @@
 qom-obj-y = object.o container.o qom-qobject.o
 qom-obj-y += object_interfaces.o

-common-obj-y = cpu.o
+obj-$(CONFIG_SOFTMMU) = cpu.o



-- 
Alexey



reply via email to

[Prev in Thread] Current Thread [Next in Thread]