qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
@ 2019-07-10 22:01 Guenter Roeck
  2019-07-11  1:07 ` Guenter Roeck
  0 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2019-07-10 22:01 UTC (permalink / raw)
  To: qemu-devel

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".

/usr/bin/ld: final link failed: File truncated
/usr/bin/ld: BFD (GNU Binutils for Ubuntu) 2.26.1 internal error,
	aborting at ../../bfd/merge.c:905 in _bfd_merged_section_offset

Running "make -j30" followed by "make install" succeeds.

This looks like "make install" may have bad dependencies. Has anyone else
experienced this problem ?

Thanks,
Guenter


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
  2019-07-10 22:01 [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step Guenter Roeck
@ 2019-07-11  1:07 ` Guenter Roeck
  2019-07-11  7:48   ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2019-07-11  1:07 UTC (permalink / raw)
  To: qemu-devel

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".
> 
> /usr/bin/ld: final link failed: File truncated
> /usr/bin/ld: BFD (GNU Binutils for Ubuntu) 2.26.1 internal error,
> 	aborting at ../../bfd/merge.c:905 in _bfd_merged_section_offset
> 
> Running "make -j30" followed by "make install" succeeds.
> 

Correction: This doesn't always work either. Sometimes I still get a linker
error. If that happens, another round of "make; make install" succeeds.

Guenter

> This looks like "make install" may have bad dependencies. Has anyone else
> experienced this problem ?
> 
> Thanks,
> Guenter


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
  2019-07-11  1:07 ` Guenter Roeck
@ 2019-07-11  7:48   ` Philippe Mathieu-Daudé
  2019-07-11 13:33     ` Guenter Roeck
  0 siblings, 1 reply; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-07-11  7:48 UTC (permalink / raw)
  To: Guenter Roeck, qemu-devel, Markus Armbruster, Daniel P. Berrange,
	Alex Bennée

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

>>
>> /usr/bin/ld: final link failed: File truncated
>> /usr/bin/ld: BFD (GNU Binutils for Ubuntu) 2.26.1 internal error,
>> 	aborting at ../../bfd/merge.c:905 in _bfd_merged_section_offset

This seems new, what is your host?

"File truncated" reminds me out-of-space issues.

FWIW sometimes I'm having some weird issue when calling "make
check-tcg". Docker is used to build target binaries, but apparently it
tries to compile some host object instead and fails, but I don't reach
the linking.
Just to clear this out, do you see any docker started?

>>
>> Running "make -j30" followed by "make install" succeeds.
>>
> 
> Correction: This doesn't always work either. Sometimes I still get a linker
> error. If that happens, another round of "make; make install" succeeds.
> 
> Guenter
> 
>> This looks like "make install" may have bad dependencies. Has anyone else
>> experienced this problem ?
>>
>> Thanks,
>> Guenter
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
  2019-07-11  7:48   ` Philippe Mathieu-Daudé
@ 2019-07-11 13:33     ` Guenter Roeck
  2019-07-11 15:38       ` Markus Armbruster
  0 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2019-07-11 13:33 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel, Markus Armbruster,
	Daniel P. Berrange, Alex Bennée

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

>>>
>>> /usr/bin/ld: final link failed: File truncated
>>> /usr/bin/ld: BFD (GNU Binutils for Ubuntu) 2.26.1 internal error,
>>> 	aborting at ../../bfd/merge.c:905 in _bfd_merged_section_offset
> 
> This seems new, what is your host?
> 
> "File truncated" reminds me out-of-space issues.
> 
No, the affected file is really truncated (or empty). The file system has
some 200+ GB of free space on an NVME drive. The error message above is
a side effect. Host is Ubuntu 16.01 running gcc 7.4 with binutils 2.26.1;
CPU is Ryzen 2700X.

For sure, the internal linker error is a binutils problem, but that should
not distract from the real issue.

> FWIW sometimes I'm having some weird issue when calling "make
> check-tcg". Docker is used to build target binaries, but apparently it
> tries to compile some host object instead and fails, but I don't reach
> the linking.
> Just to clear this out, do you see any docker started?
> 

No, there is nothing virtual involved. Also, again, the problem is only seen
with "make -j X".

Guenter

>>>
>>> Running "make -j30" followed by "make install" succeeds.
>>>
>>
>> Correction: This doesn't always work either. Sometimes I still get a linker
>> error. If that happens, another round of "make; make install" succeeds.
>>
>> Guenter
>>
>>> This looks like "make install" may have bad dependencies. Has anyone else
>>> experienced this problem ?
>>>
>>> Thanks,
>>> Guenter
>>
> 



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
  2019-07-11 13:33     ` Guenter Roeck
@ 2019-07-11 15:38       ` Markus Armbruster
  2019-07-11 16:11         ` Guenter Roeck
  0 siblings, 1 reply; 7+ messages in thread
From: Markus Armbruster @ 2019-07-11 15:38 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Alex Bennée, Daniel P. Berrange, Philippe Mathieu-Daudé,
	qemu-devel

Guenter Roeck <linux@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")


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
  2019-07-11 15:38       ` Markus Armbruster
@ 2019-07-11 16:11         ` Guenter Roeck
  2019-07-12  6:02           ` Markus Armbruster
  0 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2019-07-11 16:11 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: Alex Bennée, Daniel P. Berrange, Philippe Mathieu-Daudé,
	qemu-devel

On Thu, Jul 11, 2019 at 05:38:22PM +0200, Markus Armbruster wrote:
> Guenter Roeck <linux@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.
> 

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 <linux@roeck-us.net>

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")


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step
  2019-07-11 16:11         ` Guenter Roeck
@ 2019-07-12  6:02           ` Markus Armbruster
  0 siblings, 0 replies; 7+ messages in thread
From: Markus Armbruster @ 2019-07-12  6:02 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Daniel P. Berrange, Alex Bennée, qemu-devel,
	Philippe Mathieu-Daudé

Guenter Roeck <linux@roeck-us.net> writes:

> On Thu, Jul 11, 2019 at 05:38:22PM +0200, Markus Armbruster wrote:
>> Guenter Roeck <linux@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.
>> 
>
> 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.

Thank you very much!

> Please feel free to add
>
> Tested-by: Guenter Roeck <linux@roeck-us.net>
>
> when you formally submit the patch.

Done.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-07-12  6:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-10 22:01 [Qemu-devel] Problems building and installing qemu v4.1.0-rc1 in single step Guenter Roeck
2019-07-11  1:07 ` Guenter Roeck
2019-07-11  7:48   ` Philippe Mathieu-Daudé
2019-07-11 13:33     ` Guenter Roeck
2019-07-11 15:38       ` Markus Armbruster
2019-07-11 16:11         ` Guenter Roeck
2019-07-12  6:02           ` Markus Armbruster

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).