Guenter Roeck <li...@roeck-us.net> 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")

Reply via email to