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"

Mark Millard marklmi at yahoo.com
Tue Apr 28 00:15:19 UTC 2020



On 2020-Apr-27, at 11:46, Emmanuel Vadot <manu at bidouilliste.com> wrote:

> On Mon, 27 Apr 2020 12:32:46 +0200
> Emmanuel Vadot <manu at bidouilliste.com> wrote:
> 
>> On Sun, 26 Apr 2020 12:13:46 -0700
>> Mark Millard via freebsd-arm <freebsd-arm at freebsd.org> wrote:
>> 
>>> 
>>> 
>>> On 2020-Apr-26, at 01:14, Mark Millard <marklmi at yahoo.com> wrote:
>>> 
>>>> The below where based on poudriere-devel based build attempts.
>>>> /usr/ports/ was based on head -r532972 and aarch64 FreeBSD was
>>>> based on head -r360311 . amd64 FreeBSD did not have the build
>>>> problem for the aaarch64-targeted u-boot ports.
>>>> 
>>>> The overall build is still going and more aarch64-targeted
>>>> u-boot builds might fail.
>>>> 
>>>> 
>>>> sysutils/u-boot-rpi4 :
>>>> 
>>>> aarch64-none-elf-gcc -x c -DDO_DEPS_ONLY -M -MP -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -O2 -fno-stack-protector -fno-delete-null-pointer-checks -fmacro-prefix-map=./= -g -fstack-usage -Wno-format-nonliteral  -Werror=date-time  -D__KERNEL__ -D__UBOOT__   -D__ARM__           -fno-pic  -mstrict-align  -ffunction-sections -fdata-sections -fno-common -ffixed-r9     -fno-common -ffixed-x18 -pipe -Iinclude  -I./arch/arm/include -include ./include/linux/kconfig.h  -nostdinc -isystem /usr/local/lib/gcc/aarch64-none-elf/8.4.0/include -MQ include/config/auto.conf ./include/common.h > include/autoconf.mk.dep || { rm include/autoconf.mk.dep; false; }
>>>> sed -n -f ./tools/scripts/define2mk.sed u-boot.cfg | while read line; do if [ -n "" ] || ! grep -q "${line%=*}=" include/config/auto.conf; then echo "$line"; fi done > include/autoconf.mk
>>>> aarch64-none-elf-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
>>>> compilation terminated.
>>>> gmake[2]: *** [scripts/Makefile.autoconf:48: include/autoconf.mk.dep] Error 1
>>>> gmake[2]: *** Waiting for unfinished jobs....
>>>> gmake[1]: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'.  Stop.
>>>> gmake[1]: Leaving directory '/wrkdirs/usr/ports/sysutils/u-boot-rpi4/work/u-boot-2020.04'
>>>> 
>>>> 
>>>> sysutils/u-boot-rpi3 :
>>>> 
>>>> aarch64-none-elf-gcc -x c -DDO_DEPS_ONLY -M -MP -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -O2 -fno-stack-protector -fno-delete-null-pointer-checks -fmacro-prefix-map=./= -g -fstack-usage -Wno-format-nonliteral  -Werror=date-time  -D__KERNEL__ -D__UBOOT__   -D__ARM__           -fno-pic  -mstrict-align  -ffunction-sections -fdata-sections -fno-common -ffixed-r9     -fno-common -ffixed-x18 -pipe -Iinclude  -I./arch/arm/include -include ./include/linux/kconfig.h  -nostdinc -isystem /usr/local/lib/gcc/aarch64-none-elf/8.4.0/include -MQ include/config/auto.conf ./include/common.h > include/autoconf.mk.dep || { rm include/autoconf.mk.dep; false; }
>>>> aarch64-none-elf-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
>>>> compilation terminated.
>>>> gmake[2]: *** [scripts/Makefile.autoconf:48: include/autoconf.mk.dep] Error 1
>>>> gmake[2]: *** Waiting for unfinished jobs....
>>>> gmake[1]: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'.  Stop.
>>>> gmake[1]: Leaving directory '/wrkdirs/usr/ports/sysutils/u-boot-rpi3/work/u-boot-2020.04'
>> 
>> The lto plugins didn't used to compile on a native build of gcc
>> on aarch64 but I've updated gcc to 8.4 recently, maybe the plugin now
>> works or gcc think that it does and try to use it.
>> I'll do tests, thanks for the report.
> 
> This is solved with r533162.
> I've tested that sysutils/u-boot-pine64-lts build and boots fine.
> Let me know if you have still any issues.

The poudriere-devel runs based on updating /usr/ports content
ended up scheduling 190 package builds, including a couple of
llvm*'s. Depending on where in the sequence things happen, it
could be some time before having such full-native results.

In a amd64->aarch64 pouriere-devel based cross-build, with
nxb-bin in use (a faster build environment in my context),
I got:

. . .
gmake[4]: Leaving directory '/wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/.build/aarch64-none-elf/ilp32/libgcc'
gmake[3]: Leaving directory '/wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/.build/aarch64-none-elf/libgcc'
gmake[2]: Leaving directory '/wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/.build/aarch64-none-elf/libgcc'
gmake[1]: Leaving directory '/wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/.build'
====> Compressing man pages (compress-man)
===========================================================================
=======================<phase: package        >============================
===>  Building package for aarch64-none-elf-gcc-8.4.0_1
pkg-static: Unable to access file /wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/stage/usr/local/lib/gcc/aarch64-none-elf/8.4.0/plugin/gtype.state:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/stage/usr/local/lib/gcc/aarch64-none-elf/8.4.0/plugin/include/ada/gcc-interface/ada-tree.def:No such file or direct
ory
pkg-static: Unable to access file /wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/stage/usr/local/lib/gcc/aarch64-none-elf/8.4.0/plugin/include/addresses.h:No such file or directory
pkg-static: Unable to access file /wrkdirs/usr/ports/devel/aarch64-none-elf-gcc/work/stage/usr/local/lib/gcc/aarch64-none-elf/8.4.0/plugin/include/alias.h:No such file or directory
. . . (long list) . . .


That leads to:

[00:29:06] [04] [00:10:01] Saved devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 wrkdir to: /usr/local/poudriere/data/wrkdirs/FBSDFSSDjailCortexA53-default/default/aarch64-none-elf-gcc-8.4.0_1.tar
[00:29:10] [04] [00:10:05] Finished devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1: Failed: package
[00:29:12] [04] [00:10:07] Skipping sysutils/atf-rk3328 | atf-rk3328-v2.3: Dependent port devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 failed
[00:29:12] [04] [00:10:07] Skipping sysutils/atf-sun50i_a64 | atf-sun50i_a64-v2.3: Dependent port devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 failed
[00:29:12] [04] [00:10:07] Skipping sysutils/u-boot-pine64 | u-boot-pine64-2020.04: Dependent port devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 failed
[00:29:12] [04] [00:10:07] Skipping sysutils/u-boot-rock64 | u-boot-rock64-2020.04: Dependent port devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 failed
[00:29:12] [04] [00:10:07] Skipping sysutils/u-boot-rpi3 | u-boot-rpi3-2020.04: Dependent port devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 failed
[00:29:12] [04] [00:10:07] Skipping sysutils/u-boot-rpi4 | u-boot-rpi4-2020.04: Dependent port devel/aarch64-none-elf-gcc | aarch64-none-elf-gcc-8.4.0_1 failed



I'm guessing that the full-native builds will do similarly.
But we will eventually see.

> Thanks.
> 
>>> 
>>> The pine64 and rock64 u-boot builds also failed this way.
>>> With the rpi[34], those 4 are all the aarch64-targeted
>>> u-boot builds that I tried.
>>> 
>>> By contrast, the armv7 u-boot's that I tried all completed:
>>> orangepi-plus-2e, rpi2, and sinovoip-bpi-m3.
>> 

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



More information about the freebsd-ports mailing list