qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] [PATCH] hw/arm: Use more CONFIG switches to decide which


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-arm] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked
Date: Thu, 1 Mar 2018 13:47:31 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

Hi Thomas,

On 03/01/2018 11:13 AM, Thomas Huth wrote:
> On 01.03.2018 14:03, Peter Maydell wrote:
>> On 1 March 2018 at 05:46, Thomas Huth <address@hidden> wrote:
>>> A lot of ARM object files are linked into the executable unconditionally,
>>> even though we have corresponding CONFIG switches like CONFIG_PXA2XX or
>>> CONFIG_OMAP. We should make sure to use these switches in the Makefile so
>>> that the users can disable certain unwanted boards and devices more easily.
>>> Also introduce the new switch CONFIG_STRONGARM to be able to disable the
>>> "Collie" machine if it is not wanted.
>>>
>>> Signed-off-by: Thomas Huth <address@hidden>
>>> ---
>>>  default-configs/arm-softmmu.mak |  2 ++
>>>  hw/arm/Makefile.objs            | 26 +++++++++++++++++---------
>>>  2 files changed, 19 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/default-configs/arm-softmmu.mak 
>>> b/default-configs/arm-softmmu.mak
>>> index ca34cf4..43f382a 100644
>>> --- a/default-configs/arm-softmmu.mak
>>> +++ b/default-configs/arm-softmmu.mak
>>> @@ -133,3 +133,5 @@ CONFIG_GPIO_KEY=y
>>>  CONFIG_MSF2=y
>>>  CONFIG_FW_CFG_DMA=y
>>>  CONFIG_XILINX_AXI=y
>>> +
>>> +CONFIG_STRONGARM=y
>>> diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs
>>> index 1c896ba..5e1e0a9 100644
>>> --- a/hw/arm/Makefile.objs
>>> +++ b/hw/arm/Makefile.objs
>>> @@ -1,15 +1,23 @@
>>> -obj-y += boot.o collie.o exynos4_boards.o gumstix.o highbank.o
>>> -obj-$(CONFIG_DIGIC) += digic_boards.o
>>> -obj-y += integratorcp.o mainstone.o musicpal.o nseries.o
>>> -obj-y += omap_sx1.o palm.o realview.o spitz.o stellaris.o
>>> -obj-y += tosa.o versatilepb.o vexpress.o virt.o xilinx_zynq.o z2.o
>>> +obj-y += boot.o virt.o sysbus-fdt.o
>>>  obj-$(CONFIG_ACPI) += virt-acpi-build.o
>>> -obj-y += netduino2.o
>>> -obj-y += sysbus-fdt.o
>>> +obj-$(CONFIG_ARM_V7M) += highbank.o netduino2.o vexpress.o
>>
>> This is definitely wrong -- highbank and vexpress are not V7M
>> platforms.
> 
> Ooops, sorry, seems like I mixed up V7M with v7-A :-(
> 
>> Netduino2 is a v7M platform, but I don't think we
>> should be making it conditional on ARM_V7M -- we have per-board
>> configs for other boards, so you'd have a CONFIG_NETDUINO2 here
>> if you wanted it.
> 
> OK, I think I'll simply introduce proper config switches for all three
> boards.
> 
>>> +obj-$(CONFIG_ASPEED_SOC) += integratorcp.o musicpal.o versatilepb.o
>>
>> This is wrong too -- none of these are aspeed-based devices.
> 
> *facepalm* ... looks like I grep'ed that wrong (I was searching for
> "arm926" IIRC) ... I'll add proper config switches for those boards, too.

I went on this path some time ago, but stopped it after hearing, while
distributor are interested in shorten the binary size (reduce code
coverage for security...), the upstream project prefer to always compile
most of his code (easier to test).

Except show few missing includes, this is true there is not big win
using those CONFIG selectors, since very few devices are not compiled
(all ARM cores are always compiled).

I pushed the WIP series in case you find it useful:
https://github.com/philmd/qemu/commits/armeb-softmmu-wip

Regards,

Phil.



reply via email to

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