[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: |
Guenter Roeck |
Subject: |
Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step |
Date: |
Thu, 11 Jul 2019 09:11:48 -0700 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Thu, Jul 11, 2019 at 05:38:22PM +0200, Markus Armbruster wrote:
> 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.
>
That fixes the problem for me. I cross-checked several times: Without the
patch below, "make -j30 install" fails every time, with the patch applied
it passes every time.
Please feel free to add
Tested-by: Guenter Roeck <address@hidden>
when you formally submit the patch.
Thanks,
Guenter
> [...]
>
> 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")