Date: Thu, 29 Dec 2016 17:29:49 +0100 From: "O. Hartmann" <ohartmann@walstatt.org> To: Dimitry Andric <dim@FreeBSD.org> Cc: "O. Hartmann" <ohartmann@walstatt.org>, FreeBSD CURRENT <freebsd-current@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org>, Ed Maste <emaste@freebsd.org> Subject: Re: emulators/qemu: qemu ports failing due to compiler error on 12-CURRENT Message-ID: <20161229172949.48792b29@thor.walstatt.dynvpn.de> In-Reply-To: <782FAC01-9A7C-438F-912C-831628A08E63@FreeBSD.org> References: <20161207104203.7c9524a3@thor.walstatt.dynvpn.de> <782FAC01-9A7C-438F-912C-831628A08E63@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] Am Wed, 7 Dec 2016 23:31:01 +0100 Dimitry Andric <dim@FreeBSD.org> schrieb: > On 07 Dec 2016, at 10:42, O. Hartmann <ohartmann@walstatt.org> wrote: > > > > I try my first steps in cross compiling ports with poudriere and therefore I try to > > setup an appropriate jail and QEMU environment. > > > > Well, I'm failing at the jail setup due to the non-exitence of any suitable QEMU > > environment and for that I tried to figure out to find some proper HOWTO. > > Searching via google ave some hints, but in questions which QEMU from ports should be > > used, all leave me alone, so I tried > > > > emulators/qemu > > emulators/qemu-devel > > emulators/qemu-static > > > > emulators/qemu is known for me to fail since months and the days of 11-CURRENT, there > > is a compiler error spit out with clang 3.8 and now 3.9. The very same for qemu-devel > > (both ports used with standard options, no extras). See also Bug 214873 > > (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214873) and Bug 215100 > > (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215100). > > I couldn't reproduce the compilation errors, it builds fine for me until > the link phase. Well, I face this in poudriere on the most recent 12-CURRENT, too as well as 12-CURRENT buildworld today. On the host I'd like to run qemu for testing aarch64 binaries for a Odroid-C2 project, I use a customized /etc/src.conf - but on poudriere, there is no such customisation but the failing is identical. > > > > I tried also emulators/qemu-static, but it also fails compiling on most recent > > 12-CURRENT (as the others, too, also my poudriere environment, which has also CURRENT > > jails) with > > > > [...] > > /usr/bin/ld:../config-host.ld:14: syntax error > > c++: error: linker command failed with exit code 1 (use -v to see invocation) > > [...] > > But this I *can* reproduce. It appears qemu wants to set the text > segment start address, using the -Ttext-segment=0x60000000 option to ld. > > However, our base ld does not yet support this option, and then the > configure script tries to patch the default linker script using the > following construct: > > $ld --verbose | sed \ > -e '1,/==================================================/d' \ > -e '/==================================================/,$d' \ > -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \ > -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > > config-host.ld > > Unfortunately, it seems to run /usr/local/bin/ld in this case, and this > results in the following busted linker script line, which cannot be > parsed: > > PROVIDE (__executable_start = 0x60000000SEGMENT_START("text-segment", 0x08048000)); . > = SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS; > > If it would use /usr/bin/ld instead, the patching would succeed, and > the line would become: > > PROVIDE (__executable_start = 0x60000000); . = 0x60000000 + SIZEOF_HEADERS; > > which is probably what was intended. > > Probably, the configure script needs to be patched to run base ld, > or use the same ld invocation for both checking the -Ttext-segment > option support and patching the linker script. > > -Dimitry > Since for now all three QEMU ports are incapacitated, I start to float like a dead man in the water. I do not know where to start looking for possible sources for the miscompilations and I'm wondering why others running 12-CURRENT do not see the problem. I tried on different 12-CURRENT systems I have access to and its everwhere the same. Either, a mysterious configuration issue that finds its way also into poudriere - over clang 3.8 as well as 3.9.0 and 3.9.1 (I think it is 3.9.1 the most recent one I used). Any hope? -- O. Hartmann Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- oder Meinungsforschung (§ 28 Abs. 4 BDSG). [-- Attachment #2 --] -----BEGIN PGP SIGNATURE----- iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWGU5/QAKCRDS528fyFhY lMAqAf0S+TfEDtlRmxuaPmPO2yG3Qo5gI/x2I3lPZLgM00PcJaGjNoPiVvPwbrLh xk7DF/qGuDSH064VZhbQT4S/fheJAf9W/YRpXHpkg7wpdb/B+5198H0re6ZJ06Ef LS75hBF2ZfkUbb8VnbaUc2GWivPDCQylC1ReaouS5DPjY2NBUGFc =N6fY -----END PGP SIGNATURE-----home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161229172949.48792b29>
