Skip site navigation (1)Skip section navigation (2)
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>

next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/FQZM9f28OGiPQLlAC9HOXt=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

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:
> >=20
> > I try my first steps in cross compiling ports with poudriere and theref=
ore I try to
> > setup an appropriate jail and QEMU environment.
> >=20
> > Well, I'm failing at the jail setup due to the non-exitence of any suit=
able QEMU
> > environment and for that I tried to figure out to find some proper HOWT=
O.
> > Searching via google ave some hints, but in questions which QEMU from p=
orts should be
> > used, all leave me alone, so I tried
> >=20
> > emulators/qemu
> > emulators/qemu-devel
> > emulators/qemu-static
> >=20
> > 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=3D214873) and Bug 21=
5100
> > (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D215100). =20
>=20
> 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 a=
s 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 customi=
sation but
the failing is identical.

>=20
>=20
> > 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 ha=
s also CURRENT
> > jails) with
> >=20
> > [...]
> > /usr/bin/ld:../config-host.ld:14: syntax error
> > c++: error: linker command failed with exit code 1 (use -v to see invoc=
ation)
> > [...] =20
>=20
> But this I *can* reproduce.  It appears qemu wants to set the text
> segment start address, using the -Ttext-segment=3D0x60000000 option to ld.
>=20
> 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:
>=20
>       $ld --verbose | sed \
>         -e '1,/=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D/d' \
>         -e '/=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D/,$d' \
>         -e "s/[.] =3D [0-9a-fx]* [+] SIZEOF_HEADERS/. =3D $textseg_addr +=
 SIZEOF_HEADERS/" \
>         -e "s/__executable_start =3D [0-9a-fx]*/__executable_start =3D $t=
extseg_addr/" >
> config-host.ld
>=20
> 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:
>=20
>   PROVIDE (__executable_start =3D 0x60000000SEGMENT_START("text-segment",=
 0x08048000)); .
> =3D SEGMENT_START("text-segment", 0x08048000) + SIZEOF_HEADERS;
>=20
> If it would use /usr/bin/ld instead, the patching would succeed, and
> the line would become:
>=20
>   PROVIDE (__executable_start =3D 0x60000000); . =3D 0x60000000 + SIZEOF_=
HEADERS;
>=20
> which is probably what was intended.
>=20
> 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.
>=20
> -Dimitry
>=20

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 th=
e same.
Either, a mysterious configuration issue that finds its way also into poudr=
iere - over
clang 3.8 as well as 3.9.0 and 3.9.1 (I think it is 3.9.1 the most recent o=
ne I used).

Any hope?


--=20
O. Hartmann

Ich widerspreche der Nutzung oder =C3=9Cbermittlung meiner Daten f=C3=BCr
Werbezwecke oder f=C3=BCr die Markt- oder Meinungsforschung (=C2=A7 28 Abs.=
 4 BDSG).

--Sig_/FQZM9f28OGiPQLlAC9HOXt=
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iLUEARMKAB0WIQQZVZMzAtwC2T/86TrS528fyFhYlAUCWGU5/QAKCRDS528fyFhY
lMAqAf0S+TfEDtlRmxuaPmPO2yG3Qo5gI/x2I3lPZLgM00PcJaGjNoPiVvPwbrLh
xk7DF/qGuDSH064VZhbQT4S/fheJAf9W/YRpXHpkg7wpdb/B+5198H0re6ZJ06Ef
LS75hBF2ZfkUbb8VnbaUc2GWivPDCQylC1ReaouS5DPjY2NBUGFc
=N6fY
-----END PGP SIGNATURE-----

--Sig_/FQZM9f28OGiPQLlAC9HOXt=--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161229172949.48792b29>