head -r320192 vs. devel/aarch64-xtoolchain-gcc and devel/aarch64-binutils (/usr/ports -r443557): "liblto_plugin.so: error loading plugin: Service unavailable" for .pico link

Mark Millard markmi at dsl-only.net
Thu Jun 22 01:39:16 UTC 2017


For the first time ever I attempted to do an amd64 -> aarch64
cross build that was xtoolchain based for buildworld buildkernel .
It failed as shown below. This was while linking with .pico
files.

[Note: I used ". . ." in place of most of the huge .pico file list.]

--- libc.so.7.full ---
building shared library libc.so.7
--- libc_pic.a ---
building special pic c library
--- libc.so.7.full ---
/usr/local/bin/aarch64-freebsd-ld: /usr/local/libexec/gcc/aarch64-unknown-freebsd12.0/6.3.0/liblto_plugin.so: error loading plugin: Service unavailable
collect2: error: ld returned 1 exit status
*** [libc.so.7.full] Error code 1

make[4]: stopped in /usr/src/lib/libc
.ERROR_TARGET='libc.so.7.full'
.ERROR_META_FILE='/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/lib/libc/libc.so.7.full.meta'
.MAKE.LEVEL='4'
MAKEFILE=''
.MAKE.MODE='meta missing-filemon=yes missing-meta=yes silent=yes verbose'
_ERROR_CMD='@echo building shared library libc.so.7; @rm -f libc.so.7 libc.so; /usr/local/bin/aarch64-unknown-freebsd12.0-gcc -mcpu=cortex-a53 -isystem /usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/include -L/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/lib -B/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/lib --sysroot=/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp -B/usr/local/aarch64-freebsd/bin/  -nodefaultlibs -Wl,--version-script=Version.map  -shared -Wl,-x -Wl,--fatal-warnings -Wl,--warn-shared-textrel  -o libc.so.7.full -Wl,-soname,libc.so.7  `NM='/usr/local/aarch64-freebsd/bin/nm' NMFLAGS='' lorder machdep_ldisQ.pico
. . .
 wmemset.pico |  tsort -q`  -lcompiler_rt  -lssp_nonshared;'
.CURDIR='/usr/src/lib/libc'
.MAKE='make'
.OBJDIR='/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/lib/libc'
.TARGETS='all'
DESTDIR='/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp'
LD_LIBRARY_PATH=''
MACHINE='arm64'
MACHINE_ARCH='aarch64'
MAKEOBJDIRPREFIX='/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64'
MAKESYSPATH='/usr/src/share/mk'
MAKE_VERSION='20170510'
PATH='/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/legacy/usr/sbin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/legacy/usr/bin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/legacy/bin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/sbin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin'
SRCTOP='/usr/src'
OBJTOP='/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src'
.MAKE.MAKEFILES='/usr/src/share/mk/sys.mk /usr/src/share/mk/local.sys.env.mk /usr/src/share/mk/src.sys.env.mk /root/src.configs/src.conf.cortexA53-xtoolchain-gcc.amd64-host /usr/src/share/mk/bsd.mkopt.mk /usr/src/share/mk/bsd.suffixes.mk /root/src.configs/make.conf /usr/src/share/mk/local.sys.mk /usr/src/share/mk/src.sys.mk /dev/null /usr/src/lib/libc/Makefile /usr/src/share/mk/src.opts.mk /usr/src/share/mk/bsd.own.mk /usr/src/share/mk/bsd.opts.mk /usr/src/share/mk/bsd.cpu.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/share/mk/bsd.compiler.mk /usr/src/lib/libc/aarch64/Makefile.inc /usr/src/lib/libc/db/Makefile.inc /usr/src/lib/libc/db/btree/Makefile.inc /usr/src/lib/libc/db/db/Makefile.inc /usr/src/lib/libc/db/hash/Makefile.inc /usr/src/lib/libc/db/man/Makefile.inc /usr/src/lib/libc/db/mpool/Makefile.inc /usr/src/lib/libc/db/recno/Makefile.inc /usr/src/lib/libc/compat-43/Makefile.inc /usr/src/lib/libc/gdtoa/Makefile.inc /usr/src/lib/libc/gen/Makefile.inc /usr/src/lib/libc/aarch64/gen/Makefile.inc /usr/src/lib/libc/gmon/Makefile.inc /usr/src/lib/libc/iconv/Makefile.inc /usr/src/lib/libc_nonshared/Makefile.iconv /usr/src/lib/libc/inet/Makefile.inc /usr/src/lib/libc/isc/Makefile.inc /usr/src/lib/libc/locale/Makefile.inc /usr/src/lib/libc/md/Makefile.inc /usr/src/lib/libc/nameser/Makefile.inc /usr/src/lib/libc/net/Makefile.inc /usr/src/lib/libc/nls/Makefile.inc /usr/src/lib/libc/posix1e/Makefile.inc /usr/src/lib/libc/regex/Makefile.inc /usr/src/lib/libc/resolv/Makefile.inc /usr/src/lib/libc/stdio/Makefile.inc /usr/src/lib/libc/stdlib/Makefile.inc /usr/src/lib/libc/stdlib/jemalloc/Makefile.inc /usr/src/lib/libc/stdtime/Makefile.inc /usr/src/lib/libc/string/Makefile.inc /usr/src/lib/libc/aarch64/string/Makefile.inc /usr/src/lib/libc/sys/Makefile.inc /usr/src/sys/sys/syscall.mk /usr/src/lib/libc/aarch64/sys/Makefile.inc /usr/src/lib/libc/secure/Makefile.inc /usr/src/lib/libc/rpc/Makefile.inc /usr/src/lib/libc/uuid/Makefile.inc /usr/src/lib/libc/xdr/Makefile.inc /usr/src/lib/libc/yp/Makefile.inc /usr/src/lib/libc/capability/Makefile.inc /usr/src/share/mk/bsd.lib.mk /usr/src/share/mk/bsd.init.mk /usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk /usr/src/lib/libc/../Makefile.inc /usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk /usr/src/share/mk/bsd.symver.mk /usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk /usr/src/share/mk/bsd.confs.mk /usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.dep.mk /usr/src/share/mk/bsd.clang-analyze.mk /usr/src/share/mk/bsd.obj.mk /usr/src/share/mk/bsd.subdir.mk /usr/src/share/mk/bsd.sys.mk'
.PATH='. /usr/src/lib/libc /usr/src/lib/libc/db/btree /usr/src/lib/libc/db/db /usr/src/lib/libc/db/hash /usr/src/lib/libc/db/man /usr/src/lib/libc/db/mpool /usr/src/lib/libc/db/recno /usr/src/lib/libc/compat-43 /usr/src/lib/libc/gdtoa /usr/src/lib/libc/aarch64/gen /usr/src/lib/libc/gen /usr/src/contrib/libc-pwcache /usr/src/contrib/libc-vis /usr/src/lib/libc/gmon /usr/src/lib/libc/iconv /usr/src/lib/libc/inet /usr/src/lib/libc/isc /usr/src/lib/libc/locale /usr/src/lib/libmd /usr/src/lib/libc/nameser /usr/src/lib/libc/net /usr/src/lib/libc/nls /usr/src/lib/libc/posix1e /usr/src/lib/libc/regex /usr/src/lib/libc/resolv /usr/src/lib/libc/stdio /usr/src/lib/libc/stdlib /usr/src/lib/libc/stdlib/jemalloc /usr/src/lib/libc/stdtime /usr/src/contrib/tzcode/stdtime /usr/src/lib/libc/aarch64/string /usr/src/lib/libc/string /usr/src/sys/libkern /usr/src/contrib/cortex-strings/src/aarch64 /usr/src/lib/libc/aarch64/sys /usr/src/lib/libc/sys /usr/src/lib/libc/secure /usr/src/lib/libc/rpc /usr/src/lib/libc/. /usr/src/lib/libc/uuid /usr/src/lib/libc/xdr /usr/src/lib/libc/yp /usr/src/sys/kern /usr/src/lib/libc/capability'
1 error

# ls -lT /usr/local/libexec/gcc/aarch64-unknown-freebsd12.0/6.3.0/plugin/*
-r-xr-xr-x  1 root  wheel  390264 Jun 17 15:06:21 2017 /usr/local/libexec/gcc/aarch64-unknown-freebsd12.0/6.3.0/plugin/gengtype


The build context was:

# more ~/sys_build_scripts.amd64-host/make_cortexA53_nodebug_incl_clang_xtoolchain-gcc-amd64-host.sh 
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_cortexA53_nodebug_incl_clang_xtoolchain-gcc-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRCCONF="/dev/null" SRC_ENV_CONF="/root/src.configs/src.conf.cortexA53-xtoolchain-gcc.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/cortexA53_xtoolchain-gcc" \
make $*


# more /root/src.configs/src.conf.cortexA53-xtoolchain-gcc.amd64-host
TO_TYPE=aarch64
TOOLS_TO_TYPE=${TO_TYPE}
VERSION_CONTEXT=12.0
#
KERNCONF=GENERIC-NODBG
TARGET=arm64
.if ${.MAKE.LEVEL} == 0
TARGET_ARCH=${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITHOUT_CROSS_COMPILER=
WITHOUT_SYSTEM_COMPILER=
#
WITH_LIBCPLUSPLUS=
WITHOUT_BINUTILS_BOOTSTRAP=
WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
WITHOUT_CLANG_BOOTSTRAP=
WITH_CLANG=
WITH_CLANG_IS_CC=
WITH_CLANG_FULL=
WITH_CLANG_EXTRAS=
WITHOUT_LLD_BOOTSTRAP=
WITH_LLD=
WITH_LLD_IS_LD=
WITH_LLDB=
#
WITH_BOOT=
WITHOUT_LIB32=
#
WITHOUT_GCC_BOOTSTRAP=
WITHOUT_GCC=
WITHOUT_GCC_IS_CC=
WITHOUT_GNUCXX=
#
NO_WERROR=
#WERROR=
MALLOC_PRODUCTION=
#
WITH_REPRODUCIBLE_BUILD=
WITH_DEBUG_FILES=
#
XCFLAGS+= -mcpu=cortex-a53
XCXXFLAGS+= -mcpu=cortex-a53
# There is no XCPPFLAGS but XCPP gets XCFLAGS content.
#
#
# For TO (so-called "cross") stages . . .
# So-called-cross via ${TO_TYPE}-xtoolchain-gcc/${TO_TYPE}-gcc. . .
# TOOLS_TO_TYPE based on ${TO_TYPE}-xtoolchain-gcc related binutils. . .
#
CROSS_TOOLCHAIN=${TO_TYPE}-gcc
X_COMPILER_TYPE=gcc
CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
.if ${.MAKE.LEVEL} == 0
XCC=/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-gcc
XCXX=/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-g++
XCPP=/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-cpp
.export XCC
.export XCXX
.export XCPP
XAS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
XAR=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
XLD=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
XNM=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
XOBJCOPY=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
XOBJDUMP=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
XRANLIB=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
XSIZE=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
#NO-SUCH: XSTRINGS=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
XSTRINGS=/usr/local/bin/${TOOLS_TO_TYPE}-freebsd-strings
.export XAS
.export XAR
.export XLD
.export XNM
.export XOBJCOPY
.export XOBJDUMP
.export XRANLIB
.export XSIZE
.export XSTRINGS
.endif
#
#
# From based on clang (via system). . .
#
.if ${.MAKE.LEVEL} == 0
CC=/usr/bin/clang
CXX=/usr/bin/clang++
CPP=/usr/bin/clang-cpp
.export CC
.export CXX
.export CPP
.endif


# more /usr/src/sys/arm64/conf/GENERIC-NODBG
#
# GENERIC -- Custom configuration for the arm64/aarch64
#

include "GENERIC"

ident   GENERIC-NODBG

makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug symbols

options         ALT_BREAK_TO_DEBUGGER

options         KDB                     # Enable kernel debugger support

# For minimum debugger support (stable branch) use:
#options        KDB_TRACE               # Print a stack trace for a panic
options         DDB                     # Enable the kernel debugger

# Extra stuff:
#options        VERBOSE_SYSINIT         # Enable verbose sysinit messages
#options        BOOTVERBOSE=1
#options        BOOTHOWTO=RB_VERBOSE
#options        KTR
#options        KTR_MASK=KTR_TRAP
##options       KTR_CPUMASK=0xF
#options        KTR_VERBOSE

# Disable any extra checking for. . .
nooptions       DEADLKRES               # Enable the deadlock resolver
nooptions       INVARIANTS              # Enable calls of extra sanity checking
nooptions       INVARIANT_SUPPORT       # Extra sanity checks of internal structures, required by INVARIANTS
nooptions       WITNESS                 # Enable checks to detect deadlocks and cycles
nooptions       WITNESS_SKIPSPIN        # Don't run witness on spinlocks for speed
nooptions       DIAGNOSTIC
nooptions       MALLOC_DEBUG_MAXZONES   # Separate malloc(9) zones
nooptions       BUF_TRACKING
nooptions       FULL_BUF_TRACKING


===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-arm mailing list