Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Apr 2020 13:16:55 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Emmanuel Vadot <manu@bidouilliste.com>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: aarch64 host based sysutils/u-boot-{pine64, rock64, rpi[34]} builds fail for: "aarch64-none-elf-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found"
Message-ID:  <63269C29-F51E-43D2-A162-40C4EFF402A9@yahoo.com>
In-Reply-To: <20200429192245.ee77ccc269f75435aa379d26@bidouilliste.com>
References:  <0085757C-02B1-4CB9-9B67-01EB5D6AA86A@yahoo.com> <E5B9A9B4-B574-4303-BD17-F4366BBBD2DC@yahoo.com> <20200427123246.42e3844f39c349aac81009ff@bidouilliste.com> <20200427204606.69157e78e6eb92f3481e47e3@bidouilliste.com> <38BE4488-2BE4-4B9F-BABA-0324B6A7AE8D@yahoo.com> <90693ED6-E93D-4105-8B63-F77313F77079@yahoo.com> <20200428163906.a5081a0493970fb4556fe08b@bidouilliste.com> <13AAC979-927E-43BA-BF16-64C41546A690@yahoo.com> <7CD48F1B-7405-454A-BEFE-3B17D321D89F@yahoo.com> <1D414E35-6785-4D15-A798-DFB34C2ACC34@yahoo.com> <B5FAF7DB-B8AA-48CB-9561-4CE1CDE5FF25@yahoo.com> <7F714D23-99F3-4C31-92F1-A4ED2EABE93B@yahoo.com> <20200429125036.fbd1c0679e677260e6868eb7@bidouilliste.com> <20200429192245.ee77ccc269f75435aa379d26@bidouilliste.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2020-Apr-29, at 10:22, Emmanuel Vadot <manu at bidouilliste.com> =
wrote:

> On Wed, 29 Apr 2020 12:50:36 +0200
> Emmanuel Vadot <manu@bidouilliste.com> wrote:
>=20
>> On Wed, 29 Apr 2020 01:36:01 -0700
>> Mark Millard <marklmi@yahoo.com> wrote:
>>=20
>>> [Build successes for building via poudriere-devel.
>>> Message history removed.]
>>>=20
>>> Based on (some whitespace details might not survive):
>>>=20
>>> # svnlite diff /usr/ports/devel/aarch64-none-elf-gcc/
>>> Index: /usr/ports/devel/aarch64-none-elf-gcc/Makefile
>>> =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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> --- /usr/ports/devel/aarch64-none-elf-gcc/Makefile	(revision =
533162)
>>> +++ /usr/ports/devel/aarch64-none-elf-gcc/Makefile	(working copy)
>>> @@ -19,7 +19,8 @@
>>> LIB_DEPENDS=3D	libgmp.so:math/gmp \
>>> 		libmpfr.so:math/mpfr \
>>> 		libmpc.so:math/mpc
>>> -BUILD_DEPENDS=3D	=
${GCC_TARGET}-as:devel/binutils@${PKGNAMEPREFIX:C/-$//:C/-/_/g}
>>> +BUILD_DEPENDS=3D	=
${GCC_TARGET}-as:devel/binutils@${PKGNAMEPREFIX:C/-$//:C/-/_/g} \
>>> +		objdump:devel/binutils
>>=20
>> That brings binutils-native as a build depend, which works on aarch64
>> but I don't think it will for cross building.
>> But yes the solution is something like that, the "missing" objdump
>> seems to make gcc not building the plugins.
>>=20
>>> RUN_DEPENDS=3D	=
${GCC_TARGET}-as:devel/binutils@${PKGNAMEPREFIX:C/-$//:C/-/_/g}
>>>=20
>>> USES=3D	gmake iconv libtool tar:xz makeinfo compiler:c++11-lang
>>>=20
>>>=20
>>> Things then finish (extracted messages from an amd64->aarch64 =
poudriere-based
>>> nxb-bin involved cross-build):
>>>=20
>>> [00:14:17] [04] [00:13:40] Finished devel/aarch64-none-elf-gcc | =
aarch64-none-elf-gcc-8.4.0_1: Success
>>> [00:15:16] [02] [00:00:57] Finished sysutils/atf-sun50i_a64 | =
atf-sun50i_a64-v2.3: Success
>>> [00:15:19] [01] [00:01:00] Finished sysutils/atf-rk3328 | =
atf-rk3328-v2.3: Success
>>> [00:16:10] [05] [00:15:33] Finished devel/arm-none-eabi-gcc | =
arm-none-eabi-gcc-8.4.0_1: Success
>>> [00:21:34] [04] [00:07:15] Finished sysutils/u-boot-rpi4 | =
u-boot-rpi4-2020.04: Success
>>> [00:21:56] [03] [00:07:37] Finished sysutils/u-boot-rpi3 | =
u-boot-rpi3-2020.04: Success
>>> [00:30:31] [06] [00:14:19] Finished sysutils/u-boot-rpi2 | =
u-boot-rpi2-2020.04: Success
>>> [00:35:15] [07] [00:19:03] Finished sysutils/u-boot-sinovoip-bpi-m3 =
| u-boot-sinovoip-bpi-m3-2020.04: Success
>>> [00:35:34] [01] [00:20:15] Finished sysutils/u-boot-rock64 | =
u-boot-rock64-2020.04: Success
>>> [00:35:41] [05] [00:19:29] Finished sysutils/u-boot-orangepi-plus-2e =
| u-boot-orangepi-plus-2e-2020.04: Success
>>>=20
>>> (u-boot-pine64 still in process due to MAKE_JOBS_UNSAFE=3Dyes use.)
>>>=20
>>> aarch64 native builds also finished (not shown).
>>>=20
>>> amd64 poudriere-based builds (non-qemu) also finished:
>>>=20
>>> [00:03:22] [01] [00:03:08] Finished devel/aarch64-none-elf-gcc | =
aarch64-none-elf-gcc-8.4.0_1: Success
>>> [00:03:31] [03] [00:00:08] Finished sysutils/atf-sun50i_a64 | =
atf-sun50i_a64-v2.3: Success
>>> [00:03:31] [01] [00:00:08] Finished sysutils/atf-rk3328 | =
atf-rk3328-v2.3: Success
>>> [00:03:33] [02] [00:03:19] Finished devel/arm-none-eabi-gcc | =
arm-none-eabi-gcc-8.4.0_1: Success
>>> [00:04:00] [04] [00:00:37] Finished sysutils/u-boot-rpi3 | =
u-boot-rpi3-2020.04: Success
>>> [00:04:01] [05] [00:00:38] Finished sysutils/u-boot-rpi4 | =
u-boot-rpi4-2020.04: Success
>>> [00:04:18] [06] [00:00:44] Finished sysutils/u-boot-rpi2 | =
u-boot-rpi2-2020.04: Success
>>> [00:04:40] [02] [00:01:06] Finished sysutils/u-boot-orangepi-plus-2e =
| u-boot-orangepi-plus-2e-2020.04: Success
>>> [00:04:41] [07] [00:01:07] Finished sysutils/u-boot-sinovoip-bpi-m3 =
| u-boot-sinovoip-bpi-m3-2020.04: Success
>>> [00:04:42] [01] [00:01:10] Finished sysutils/u-boot-rock64 | =
u-boot-rock64-2020.04: Success
>>> [00:06:46] [03] [00:03:15] Finished sysutils/u-boot-pine64 | =
u-boot-pine64-2020.04: Success
>>>=20
>>>=20
>>>=20
>>> FYI:
>>>=20
>>> # svnlite diff /usr/ports/sysutils/u-boot-pine64/
>>> Index: /usr/ports/sysutils/u-boot-pine64/Makefile
>>> =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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> --- /usr/ports/sysutils/u-boot-pine64/Makefile	(revision =
533162)
>>> +++ /usr/ports/sysutils/u-boot-pine64/Makefile	(working copy)
>>> @@ -6,4 +6,6 @@
>>> BOARD_CONFIG=3D	pine64_plus_defconfig
>>> FAMILY=3D		allwinner64
>>>=20
>>> +MAKE_JOBS_UNSAFE=3Dyes
>>> +
>>> .include "${MASTERDIR}/Makefile"
>>>=20
>>> based on historical build-race problems specific to pine64's
>>> u-boot build. But it makes the qemu-based build take a very
>>> long time.
>>>=20
>>>=20
>>> =3D=3D=3D
>>> Mark Millard
>>> marklmi at yahoo.com
>>> ( dsl-only.net went
>>> away in early 2018-Mar)
>>>=20
>>=20
>>=20
>> --=20
>> Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>
>> _______________________________________________
>> freebsd-arm@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
>> To unsubscribe, send any mail to =
"freebsd-arm-unsubscribe@freebsd.org"
>=20
> Issue should be fixed in r533381.
> It works for me on aarch64 and on amd64.
>=20

(The aarch64 hardware contexts are busy so I tested
via amd64 native poudriere and amd64->aarch64 nxb-bin
poudriere for now.)

It worked for devel/aarch64-non-elf-gcc on my aarch64
targeting tests but . . .

This fix failed for amd64->aarch64 nxb-bin based poudriere
build of arm-none-eabi-gcc :

[00:09:45] [02] [00:09:40] Finished devel/arm-none-eabi-gcc | =
arm-none-eabi-gcc-8.4.0_1: Failed: package
. . .
[00:11:15] Failed ports: devel/arm-none-eabi-gcc:package

The objdump failed for being the wrong kind of executable:

Links are now set up to build a cross-compiler
 from aarch64-unknown-freebsd13.0 to arm-none-eabi.
checking for exported symbols... objdump: conftest: file format not =
recognized
yes
checking for -rdynamic... objdump: conftest: file format not recognized
no

This again lead to enable_plugins=3Dno and the package stage noticing
the missing files:

=3D=3D=3D>  Building package for arm-none-eabi-gcc-8.4.0_1
pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/arm-none-eabi-gcc/work/stage/usr/local/lib/gcc/ar=
m-none-eabi/8.4.0/plugin/gtype.state:No such file or directory
pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/arm-none-eabi-gcc/work/stage/usr/local/lib/gcc/ar=
m-none-eabi/8.4.0/plugin/include/ada/gcc-interface/ada-tree.def:No such =
file or directory
pkg-static: Unable to access file =
/wrkdirs/usr/ports/devel/arm-none-eabi-gcc/work/stage/usr/local/lib/gcc/ar=
m-none-eabi/8.4.0/plugin/include/addresses.h:No such file or directory
. . .


By contrast the patch I tried earlier:

-BUILD_DEPENDS=3D	=
${GCC_TARGET}-as:devel/binutils@${PKGNAMEPREFIX:C/-$//:C/-/_/g}
+BUILD_DEPENDS=3D	=
${GCC_TARGET}-as:devel/binutils@${PKGNAMEPREFIX:C/-$//:C/-/_/g} \
+		objdump:devel/binutils

worked in all cases that I'm testing.


Note: I do not test amd64->armv7 via nxb-bin based
poudriere cross builds because qemu has its own
failures that hang up builds when I try that. But
I expect that armv7 building aarch64-non-elf-gcc
would have the same problem aarch64 has building
arm-none-eabi-gcc.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?63269C29-F51E-43D2-A162-40C4EFF402A9>