On Thu, Feb 27, 2014 at 07:38:56PM +0000, Peter Maydell wrote:
> $ git clone git://git.qemu.org/qemu.git
> [...]
> $ cd qemu
> $ mkdir build/a64-targets-nodbg/ && (cd build/a64-targets-nodbg/ &&
> '../../configure'
> '--target-list=aarch64-softmmu,arm-softmmu,aarch64-linux-user,arm-linux-user'
> '--cc=ccache gcc' '--disable-tools') && make -C
> build/a64-targets-nodbg/
> [...]
> make[1]: *** No rule to make target `../async.o', needed by
> `qemu-system-aarch64'. Stop.
>
> Make seems to be able to build these files in its top level
> build directory:
>
> make -C build/a64-targets-nodbg async.o
>
> but it can't build them on-demand when the targets in the
> per-target subdirectories reference them via ../object-file.o
>
> git bisect blames this commit:
> commit ba1183da9a10b94611cad88c44a5c6df005f9b55
> Author: Fam Zheng <[email protected]>
> Date: Mon Feb 10 14:48:52 2014 +0800
>
> rules.mak: fix $(obj) to a real relative path
>
> Any ideas?
>
Hi Peter,
It looks like this is the culprit, from that commit:
-common-obj-y = $(block-obj-y) blockdev.o blockdev-nbd.o block/
+common-obj-y = blockdev.o blockdev-nbd.o block/
You are running into this bug since you configured with
--disable-tools.
As a temp workaround, if you build qemu-nbd (or qemu-img) first, that
should build the required block-obj-y objects, which should then allow
everything to build. E.g.:
make -j5 qemu-nbd all
Jeff