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 <th...@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 <th...@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.