Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jun 2017 18:51:06 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   Re: 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
Message-ID:  <6CAD4727-7B73-4583-B29B-7A3D071CE78D@dsl-only.net>
In-Reply-To: <15079239-4CE5-43E9-831D-994ADA0D5213@dsl-only.net>
References:  <15079239-4CE5-43E9-831D-994ADA0D5213@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
[I add a note showing aarch64-freebsd-ld is statically
linked.]

On 2017-Jun-21, at 6:39 PM, Mark Millard <markmi at dsl-only.net> wrote:

> 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.
>=20
> [Note: I used ". . ." in place of most of the huge .pico file list.]
>=20
> --- 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

FYI: /usr/local/bin/aarch64-freebsd-ld is statically linked.

# file /usr/local/bin/aarch64-freebsd-ld*
/usr/local/bin/aarch64-freebsd-ld:     ELF 64-bit LSB executable, =
x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 12.0 =
(1200033), FreeBSD-style, not stripped
/usr/local/bin/aarch64-freebsd-ld.bfd: ELF 64-bit LSB executable, =
x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 12.0 =
(1200033), FreeBSD-style, not stripped


> make[4]: stopped in /usr/src/lib/libc
> .ERROR_TARGET=3D'libc.so.7.full'
> =
.ERROR_META_FILE=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/sr=
c/lib/libc/libc.so.7.full.meta'
> .MAKE.LEVEL=3D'4'
> MAKEFILE=3D''
> .MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes=
 verbose'
> _ERROR_CMD=3D'@echo building shared library libc.so.7; @rm -f =
libc.so.7 libc.so; /usr/local/bin/aarch64-unknown-freebsd12.0-gcc =
-mcpu=3Dcortex-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=3D/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp =
-B/usr/local/aarch64-freebsd/bin/  -nodefaultlibs =
-Wl,--version-script=3DVersion.map  -shared -Wl,-x -Wl,--fatal-warnings =
-Wl,--warn-shared-textrel  -o libc.so.7.full -Wl,-soname,libc.so.7  =
`NM=3D'/usr/local/aarch64-freebsd/bin/nm' NMFLAGS=3D'' lorder =
machdep_ldisQ.pico
> . . .
> wmemset.pico |  tsort -q`  -lcompiler_rt  -lssp_nonshared;'
> .CURDIR=3D'/usr/src/lib/libc'
> .MAKE=3D'make'
> =
.OBJDIR=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/lib/lib=
c'
> .TARGETS=3D'all'
> DESTDIR=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp'
> LD_LIBRARY_PATH=3D''
> MACHINE=3D'arm64'
> MACHINE_ARCH=3D'aarch64'
> MAKEOBJDIRPREFIX=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64'
> MAKESYSPATH=3D'/usr/src/share/mk'
> MAKE_VERSION=3D'20170510'
> =
PATH=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/legacy=
/usr/sbin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/lega=
cy/usr/bin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/leg=
acy/bin:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/sb=
in:/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src/tmp/usr/bin:/sb=
in:/bin:/usr/sbin:/usr/bin'
> SRCTOP=3D'/usr/src'
> OBJTOP=3D'/usr/obj/cortexA53_xtoolchain-gcc/arm64.aarch64/usr/src'
> .MAKE.MAKEFILES=3D'/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/s
> rc/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=3D'. /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/li
> b/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
>=20
> # 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
>=20
>=20
> The build context was:
>=20
> # more =
~/sys_build_scripts.amd64-host/make_cortexA53_nodebug_incl_clang_xtoolchai=
n-gcc-amd64-host.sh=20
> 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=3D"/root/src.configs/make.conf" SRCCONF=3D"/dev/null" =
SRC_ENV_CONF=3D"/root/src.configs/src.conf.cortexA53-xtoolchain-gcc.amd64-=
host" \
> WITH_META_MODE=3Dyes \
> MAKEOBJDIRPREFIX=3D"/usr/obj/cortexA53_xtoolchain-gcc" \
> make $*
>=20
>=20
> # more /root/src.configs/src.conf.cortexA53-xtoolchain-gcc.amd64-host
> TO_TYPE=3Daarch64
> TOOLS_TO_TYPE=3D${TO_TYPE}
> VERSION_CONTEXT=3D12.0
> #
> KERNCONF=3DGENERIC-NODBG
> TARGET=3Darm64
> .if ${.MAKE.LEVEL} =3D=3D 0
> TARGET_ARCH=3D${TO_TYPE}
> .export TARGET_ARCH
> .endif
> #
> WITHOUT_CROSS_COMPILER=3D
> WITHOUT_SYSTEM_COMPILER=3D
> #
> WITH_LIBCPLUSPLUS=3D
> WITHOUT_BINUTILS_BOOTSTRAP=3D
> WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=3D
> WITHOUT_CLANG_BOOTSTRAP=3D
> WITH_CLANG=3D
> WITH_CLANG_IS_CC=3D
> WITH_CLANG_FULL=3D
> WITH_CLANG_EXTRAS=3D
> WITHOUT_LLD_BOOTSTRAP=3D
> WITH_LLD=3D
> WITH_LLD_IS_LD=3D
> WITH_LLDB=3D
> #
> WITH_BOOT=3D
> WITHOUT_LIB32=3D
> #
> WITHOUT_GCC_BOOTSTRAP=3D
> WITHOUT_GCC=3D
> WITHOUT_GCC_IS_CC=3D
> WITHOUT_GNUCXX=3D
> #
> NO_WERROR=3D
> #WERROR=3D
> MALLOC_PRODUCTION=3D
> #
> WITH_REPRODUCIBLE_BUILD=3D
> WITH_DEBUG_FILES=3D
> #
> XCFLAGS+=3D -mcpu=3Dcortex-a53
> XCXXFLAGS+=3D -mcpu=3Dcortex-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=3D${TO_TYPE}-gcc
> X_COMPILER_TYPE=3Dgcc
> CROSS_BINUTILS_PREFIX=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
> .if ${.MAKE.LEVEL} =3D=3D 0
> =
XCC=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-gc=
c
> =
XCXX=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-g=
++
> =
XCPP=3D/usr/local/bin/${TOOLS_TO_TYPE}-unknown-freebsd${VERSION_CONTEXT}-c=
pp
> .export XCC
> .export XCXX
> .export XCPP
> XAS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/as
> XAR=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ar
> XLD=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ld
> XNM=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/nm
> XOBJCOPY=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objcopy
> XOBJDUMP=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/objdump
> XRANLIB=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/ranlib
> XSIZE=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/size
> #NO-SUCH: XSTRINGS=3D/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/strings
> XSTRINGS=3D/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
> #
> #
> # =46rom based on clang (via system). . .
> #
> .if ${.MAKE.LEVEL} =3D=3D 0
> CC=3D/usr/bin/clang
> CXX=3D/usr/bin/clang++
> CPP=3D/usr/bin/clang-cpp
> .export CC
> .export CXX
> .export CPP
> .endif
>=20
>=20
> # more /usr/src/sys/arm64/conf/GENERIC-NODBG
> #
> # GENERIC -- Custom configuration for the arm64/aarch64
> #
>=20
> include "GENERIC"
>=20
> ident   GENERIC-NODBG
>=20
> makeoptions     DEBUG=3D-g                # Build kernel with gdb(1) =
debug symbols
>=20
> options         ALT_BREAK_TO_DEBUGGER
>=20
> options         KDB                     # Enable kernel debugger =
support
>=20
> # For minimum debugger support (stable branch) use:
> #options        KDB_TRACE               # Print a stack trace for a =
panic
> options         DDB                     # Enable the kernel debugger
>=20
> # Extra stuff:
> #options        VERBOSE_SYSINIT         # Enable verbose sysinit =
messages
> #options        BOOTVERBOSE=3D1
> #options        BOOTHOWTO=3DRB_VERBOSE
> #options        KTR
> #options        KTR_MASK=3DKTR_TRAP
> ##options       KTR_CPUMASK=3D0xF
> #options        KTR_VERBOSE
>=20
> # 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


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6CAD4727-7B73-4583-B29B-7A3D071CE78D>