Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 669570 - app-emulation/xen-tools-4.11.0-r2 USE=hvm fails to build with ld.gold linker: x86_64-pc-linux-gnu-ld: internal error in set_offset, at /var/tmp/portage/sys-devel/binutils-2.31.1-r1/work/binutils-2.31.1/gold/output.cc:4774
Summary: app-emulation/xen-tools-4.11.0-r2 USE=hvm fails to build with ld.gold linker:...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Xen Devs
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2018-10-25 10:53 UTC by Jiří Moravec
Modified: 2018-11-10 20:57 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Version 1 : force ld.bfd on whole package (xen-tools-4.11.0-r2.ebuild-bfd-v1.patch,437 bytes, patch)
2018-10-25 11:06 UTC, Jiří Moravec
Details | Diff
Version 2 : force ld.bfd only to hvmloader build (xen-tools-4.11.0-r2.ebuild-bfd-v2.patch,452 bytes, patch)
2018-10-25 11:06 UTC, Jiří Moravec
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jiří Moravec 2018-10-25 10:53:14 UTC
With ld.gold as default linker, compilation of xen-tools package still failing on amd64 architecture:

...
x86_64-pc-linux-gnu-ld -melf_i386 -N -Ttext 0x100000 -o hvmloader hvmloader.o mp_tables.o util.o smbios.o smp.o cacheattr.o xenbus.o vnuma.o e820.o pci.o pir.o ctype.o hvm_param.o ovmf.o seabios.o optionroms.o 32bitbios_support.o rombios.o dsdt_anycpu.o dsdt_15cpu.o dsdt_anycpu_qemu_xen.o build.o static_tables.o
x86_64-pc-linux-gnu-ld: internal error in set_offset, at /var/tmp/portage/sys-devel/binutils-2.31.1-r1/work/binutils-2.31.1/gold/output.cc:4774
make[7]: *** [Makefile:87: hvmloader] Error 1
make[7]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware/hvmloader'
make[6]: *** [Makefile:68: all] Error 2
make[6]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware/hvmloader'
make[5]: *** [/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware/../../tools/Rules.mk:249: subdir-all-hvmloader] Error 2
make[5]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware'
make[4]: *** [/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware/../../tools/Rules.mk:244: subdirs-all] Error 2
make[4]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware'
make[3]: *** [Makefile:36: all] Error 2
make[3]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/firmware'
make[2]: *** [/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/../tools/Rules.mk:249: subdir-all-firmware] Error 2
make[2]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools'
make[1]: *** [/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools/../tools/Rules.mk:244: subdirs-all] Error 2
make[1]: Leaving directory '/var/tmp/portage/app-emulation/xen-tools-4.11.0-r2/work/xen-4.11.0/tools'
make: *** [Makefile:59: build-tools] Error 2
Comment 1 Jiří Moravec 2018-10-25 11:04:16 UTC
Two possible workarounds:

1) Force ld.bfd to whole package:
--- xen-tools-4.11.0-r2.ebuild  2018-10-25 10:06:30.252969669 +0200
+++ xen-tools-4.11.0-r2.ebuild  2018-10-25 11:50:34.746462895 +0200
@@ -357,6 +363,7 @@ src_configure() {
 use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
 use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64"
 use amd64 && myconf+=" $(use_enable qemu-traditional)"
+tc-ld-disable-gold
 econf ${myconf}
 }
 

or

2) Only to hvmloader build:
--- xen-tools-4.11.0-r2.ebuild  2018-10-25 10:06:30.252969669 +0200
+++ xen-tools-4.11.0-r2.ebuild  2018-10-25 11:50:34.746462895 +0200
@@ -335,6 +335,12 @@ src_prepare() {
 -e 's:^#vif.default.script=:vif.default.script=:' \
 -i tools/examples/xl.conf  || die
 
+       if use hvm; then
+               if [[ "${ARCH}" == 'amd64' ]]; then
+                       sed -i -e '/$(LD) $(LDFLAGS_DIRECT)/s:$(LD):$(LD).bfd:' tools/firmware/hvmloader/Makefile || die
+               fi
+       fi
+
 default
 }
Comment 2 Jiří Moravec 2018-10-25 11:06:02 UTC
Created attachment 552858 [details, diff]
Version 1 : force ld.bfd on whole package
Comment 3 Jiří Moravec 2018-10-25 11:06:35 UTC
Created attachment 552860 [details, diff]
Version 2 : force ld.bfd only to hvmloader build
Comment 4 Jiří Moravec 2018-10-25 11:09:07 UTC
ld is from binutils-2.31.1 package
Comment 5 Tomáš Mózes 2018-11-09 12:30:25 UTC
Thank you very much Jiří for the report and fix, opened a PR with variant 1.
Comment 6 Larry the Git Cow gentoo-dev 2018-11-10 20:57:09 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7091f5dad799be80fcd94c829a69a6c614a0abfa

commit 7091f5dad799be80fcd94c829a69a6c614a0abfa
Author:     Tomas Mozes <hydrapolic@gmail.com>
AuthorDate: 2018-11-09 12:04:56 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2018-11-10 20:56:53 +0000

    app-emulation/xen-tools: bump to 4.11.0-r3
    
    Closes: https://bugs.gentoo.org/669570
    Package-Manager: Portage-2.3.51, Repoman-2.3.12
    Signed-off-by: Tomáš Mózes <hydrapolic@gmail.com>
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 app-emulation/xen-tools/Manifest                   |   1 +
 app-emulation/xen-tools/xen-tools-4.11.0-r3.ebuild | 457 +++++++++++++++++++++
 2 files changed, 458 insertions(+)