[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in sin
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step |
Date: |
Thu, 11 Jul 2019 17:38:22 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Guenter Roeck <address@hidden> writes:
> Hi,
>
> On 7/11/19 12:48 AM, Philippe Mathieu-Daudé wrote:
>> Hi Guenter,
>>
>> Cc'ing Markus/Dan/Alex
>>
>> On 7/11/19 3:07 AM, Guenter Roeck wrote:
>>> On Wed, Jul 10, 2019 at 03:01:53PM -0700, Guenter Roeck wrote:
>>>> Hi,
>>>>
>>>> when trying to run "make -j30 install" from a clean tree on v4.1.0-rc0, I
>>>> get
>>>> _lots_ of undefined symbol errors.
>>>>
>>>> If I run "make -j30" followed by "make -j30 install", make succeeds, but
>>>> then
>>>> I get linker errors such as the following when running "make -j30 install".
>>
>> Seems similar to this report:
>> https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg01860.html
>>
> Yes, that looks like the same problem.
>
> Reverting the following commits fixes the problem for me.
>
> 8d358a5 Makefile: Fix "make clean" in "unconfigured" source directory
> (possibly for context to be able to revert the next patch)
> 1338a4b Makefile: Reuse all's recursion machinery for clean and install
Hmm.
Target install depends on all.
Before commit 1338a4b, the recursion into target directories was in
install's recipe: it ran make install in a for-loop. This trivially
ensured we run the sub-make install only after completing target all.
Since commit 1338a4b, the target recursion is in the dependencies, just
like for target all. That's good, but I forgot to add dependencies to
ensure make runs the sub-make install only after completing target all.
Can you try the appended patch for me? I'm having difficulties
reproducing the bug locally.
[...]
diff --git a/Makefile b/Makefile
index 1fcbaed62c..09b77e8a7b 100644
--- a/Makefile
+++ b/Makefile
@@ -522,6 +522,7 @@ $(ROM_DIRS_RULES):
recurse-all: $(addsuffix /all, $(TARGET_DIRS) $(ROM_DIRS))
recurse-clean: $(addsuffix /clean, $(TARGET_DIRS) $(ROM_DIRS))
recurse-install: $(addsuffix /install, $(TARGET_DIRS))
+$(addsuffix /install, $(TARGET_DIRS)): all
$(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc config-host.h
$(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@
$<,"RC","version.o")