All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked
@ 2018-03-01  5:46 Thomas Huth
  2018-03-01 13:03 ` Peter Maydell
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Huth @ 2018-03-01  5:46 UTC (permalink / raw)
  To: qemu-arm, Peter Maydell; +Cc: qemu-devel

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 <thuth@redhat.com>
---
 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
+obj-$(CONFIG_ASPEED_SOC) += integratorcp.o musicpal.o versatilepb.o
+obj-$(CONFIG_DIGIC) += digic_boards.o
+obj-$(CONFIG_EXYNOS4) += exynos4_boards.o
+obj-$(CONFIG_NSERIES) += nseries.o
+obj-$(CONFIG_OMAP) += omap_sx1.o palm.o
+obj-$(CONFIG_PXA2XX) += gumstix.o spitz.o mainstone.o tosa.o z2.o
+obj-$(CONFIG_REALVIEW) += realview.o
+obj-$(CONFIG_STELLARIS) += stellaris.o
+obj-$(CONFIG_STRONGARM) += collie.o
+obj-$(CONFIG_ZYNQ) += xilinx_zynq.o
 
-obj-y += armv7m.o exynos4210.o pxa2xx.o pxa2xx_gpio.o pxa2xx_pic.o
+obj-$(CONFIG_ARM_V7M) += armv7m.o
+obj-$(CONFIG_EXYNOS4) += exynos4210.o
+obj-$(CONFIG_PXA2XX) += pxa2xx.o pxa2xx_gpio.o pxa2xx_pic.o
 obj-$(CONFIG_DIGIC) += digic.o
-obj-y += omap1.o omap2.o strongarm.o
+obj-$(CONFIG_OMAP) += omap1.o omap2.o
+obj-$(CONFIG_STRONGARM) += strongarm.o
 obj-$(CONFIG_ALLWINNER_A10) += allwinner-a10.o cubieboard.o
 obj-$(CONFIG_RASPI) += bcm2835_peripherals.o bcm2836.o raspi.o
 obj-$(CONFIG_STM32F205_SOC) += stm32f205_soc.o
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked
  2018-03-01  5:46 [Qemu-devel] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked Thomas Huth
@ 2018-03-01 13:03 ` Peter Maydell
  2018-03-01 14:13   ` Thomas Huth
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Maydell @ 2018-03-01 13:03 UTC (permalink / raw)
  To: Thomas Huth; +Cc: qemu-arm, QEMU Developers

On 1 March 2018 at 05:46, Thomas Huth <thuth@redhat.com> 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 <thuth@redhat.com>
> ---
>  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. 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.

> +obj-$(CONFIG_ASPEED_SOC) += integratorcp.o musicpal.o versatilepb.o

This is wrong too -- none of these are aspeed-based devices.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked
  2018-03-01 13:03 ` Peter Maydell
@ 2018-03-01 14:13   ` Thomas Huth
  2018-03-01 16:47     ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Huth @ 2018-03-01 14:13 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-arm, QEMU Developers

On 01.03.2018 14:03, Peter Maydell wrote:
> On 1 March 2018 at 05:46, Thomas Huth <thuth@redhat.com> 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 <thuth@redhat.com>
>> ---
>>  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.

 Thomas

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [Qemu-arm] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked
  2018-03-01 14:13   ` Thomas Huth
@ 2018-03-01 16:47     ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-01 16:47 UTC (permalink / raw)
  To: Thomas Huth, Peter Maydell; +Cc: qemu-arm, QEMU Developers

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 <thuth@redhat.com> 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 <thuth@redhat.com>
>>> ---
>>>  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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-03-01 16:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-01  5:46 [Qemu-devel] [PATCH] hw/arm: Use more CONFIG switches to decide which object files should be linked Thomas Huth
2018-03-01 13:03 ` Peter Maydell
2018-03-01 14:13   ` Thomas Huth
2018-03-01 16:47     ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.