In some configuration (linux-user, tools) we can ignore building various objects (and the libfdt).
Tested with all the combinations of --[enable|disable]-tools, --[enable|disable]-user and --[enable|disable]-system using the following commands (suggested by Laurent Vivier in v1): $ mkdir build $ cd build $ for user in enable disable; do \ for tools in enable disable; do \ for system in enable disable; do \ rm -fr build-$user-$system-$tools && \ mkdir build-$user-$system-$tools && \ (cd build-$user-$system-$tools && \ ../../configure \ --${user}-user \ --${system}-system \ --${tools}-tools \ --disable-docs \ ); \ done; \ done; \ done Then building each of the 8 subdirectories on x86_64 and aarch64 hosts, running 'make check', and only on x86_64: 'make run-tcg-tests-x86_64-linux-user'. All CI green: https://gitlab.com/philmd/qemu/pipelines/110420332 https://travis-ci.org/philmd/qemu/builds/638781159 https://app.shippable.com/github/philmd/qemu/runs/587/summary/console Since v1: - no code change, improved commit description, added review tags - added 2 new patches touching hw/core/ (remove reset.o from linux-user) $ git backport-diff -u v1 Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/6:[----] [--] 'configure: Do not build libfdt if not required' 002/6:[----] [--] 'Makefile: Clarify all the codebase requires qom/ objects' 003/6:[----] [--] 'Makefile: Restrict system emulation and tools objects' 004/6:[----] [--] 'Makefile: Remove unhelpful comment' 005/6:[down] 'hw/core: Restrict reset handlers API to system-mode' 006/6:[down] 'hw/core/Makefile: Group generic objects versus system-mode objects' Supersedes: <20200109153939.27173-1-phi...@redhat.com> Philippe Mathieu-Daudé (6): configure: Do not build libfdt if not required Makefile: Clarify all the codebase requires qom/ objects Makefile: Restrict system emulation and tools objects Makefile: Remove unhelpful comment hw/core: Restrict reset handlers API to system-mode hw/core/Makefile: Group generic objects versus system-mode objects configure | 2 ++ Makefile.objs | 31 ++++++++++--------------------- hw/core/Makefile.objs | 31 ++++++++++++++++--------------- 3 files changed, 28 insertions(+), 36 deletions(-) -- 2.21.1