Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Jul 2017 01:11:08 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Warner Losh <imp@bsdimp.com>
Cc:        Dimitry Andric <dim@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: -r321371 amd64 -> powerpc64 cross build: lldb.full link fails with: c++: error: linker command failed with exit code 1, -B/usr/local/powerpc64-freebsd/bin/ in use
Message-ID:  <9BF3D07D-99B0-4C9F-9329-FD05190D84D1@dsl-only.net>
In-Reply-To: <CANCZdfpBT1mRDNGjLE8Gvz1wE2sSvv3qJvsE_8XTJ625TOM4OA@mail.gmail.com>
References:  <9EF818CD-73FC-4283-8CC2-4BA21342CFB1@dsl-only.net> <98DFB763-0CA4-45B3-98E3-050462A9EC15@dsl-only.net> <FEB83F55-C486-487B-BC18-70F9DBF149F0@dsl-only.net> <B6B47C09-DC41-4170-A6E8-F5CC1C41B74D@FreeBSD.org> <9D2961AE-D423-4ED4-B16D-308BA19AC7A0@dsl-only.net> <B0EC1A43-FF42-4390-A21F-2066FC6E09CD@dsl-only.net> <BC420388-C2A9-4B6D-AB44-309FF900D935@dsl-only.net> <D5A9EC60-C832-498D-B29E-C96EDB990684@dsl-only.net> <3E5E8DE4-0135-4071-A041-F56DB53EE3F3@dsl-only.net> <CANCZdfpBT1mRDNGjLE8Gvz1wE2sSvv3qJvsE_8XTJ625TOM4OA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-Jul-24, at 7:28 AM, Warner Losh <imp at bsdimp.com> wrote:

>> On Mon, Jul 24, 2017 at 1:33 AM, Mark Millard <markmi at =
dsl-only.net> wrote:
>> [I forgot that linking lldb historically failed on armv6
>> (cortex-a7) based on the historical system binutils.]
>>=20
>> On 2017-Jul-23, at 8:51 PM, Mark Millard <markmi at dsl-only.net> =
wrote:
>>=20
>> > [Using WITH_LLDB=3D had no problem for amd64 -> TARGET_ARCH=3Daarch64=

>> > buildworld buildkernel .]
>> . . .
>> >
>> > My aarch64 buildworld buildkernel completed finally.
>> > Using WITH_LLDB=3D had no problem for amd64 ->
>> > TARGET_ARCH=3Daarch64 buildworld buildkernel doing
>> > the -r321109 to -r321371 upgrade. I did not see
>> > the problem for amd64 (self hosted).
>> >
>> > I'll try armv7 (cortex-a7) next, the last of
>> > the TARGET_ARCH=3D<?> that I normally build.
>> >
>> > So far I've seen the problem only for powerpc64.
>> > (I do not build lldb for 32-bit powerpc because
>> > the lack of 8-byte atomics for powerpc historically
>> > blocked the lldb build.)
>>=20
>> As for trying armv6/7 (cortex-a7): I forgot that linking
>> lldb historically failed for targeting cortex-a7 based
>> on the historical system binutils. The build was with
>> WITHOUT_LLDB=3D (as is my standard procedure for cortex-a7)
>> so not a relevant test.
>=20
> lldb doesn't support armv6 ISA, but does support armv7 ISA.
>=20
> Just as a point of reference. It's one of the reasons for creating a =
new MACHINE_ARCH of armv7.

Just FYI: Attempting WITH_LLDB=3D in a amd64 -> armv6/7 cross
build of -r321493 failed as shown below despite using:

XCFLAGS+=3D -mcpu=3Dcortex-a7
XCXXFLAGS+=3D -mcpu=3Dcortex-a7

(Full build context shown later.)

--- lldb.full ---
=
/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/lib/libgcc.a(clear_cache.o)=
: In function `__clear_cache':
/usr/src/contrib/compiler-rt/lib/builtins/clear_cache.c:(.text+0x1c): =
relocation truncated to fit: R_ARM_CALL against symbol =
`sysarch@@FBSD_1.0' defined in .plt section in =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libllvm/libllvm.a(regexec=
.o)
c++: error: linker command failed with exit code 1 (use -v to see =
invocation)
*** [lldb.full] Error code 1

make[5]: stopped in /usr/src/usr.bin/clang/lldb
.ERROR_TARGET=3D'lldb.full'
=
.ERROR_META_FILE=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/usr.bin/clang/l=
ldb/lldb.full.meta'
.MAKE.LEVEL=3D'5'
MAKEFILE=3D''
.MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes =
verbose'
_ERROR_CMD=3D'c++ -mcpu=3Dcortex-a7 -mcpu=3Dcortex-a7 -target =
armv6-gnueabihf-freebsd12.0 =
--sysroot=3D/usr/obj/armv7_clang/arm.armv6/usr/src/tmp =
-B/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/bin -O -pipe =
-I/usr/src/contrib/llvm/tools/lldb/include =
-I/usr/src/contrib/llvm/tools/clang/include -DCLANG_ENABLE_ARCMT =
-DCLANG_ENABLE_STATIC_ANALYZER -I/usr/src/lib/clang/include =
-I/usr/src/contrib/llvm/include -DLLVM_BUILD_GLOBAL_ISEL =
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS =
-DLLVM_DEFAULT_TARGET_TRIPLE=3D\"armv6-unknown-freebsd12.0-gnueabihf\" =
-DLLVM_HOST_TRIPLE=3D\"armv6-unknown-freebsd12.0\" =
-DDEFAULT_SYSROOT=3D\"\" -ffunction-sections -fdata-sections -g =
-Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable =
-Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality =
-Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef =
-Wno-address-of-packed-member -Wno-switch -Wno-switch-enum =
-Wno-knr-promoted-parameter -Wno-parentheses -Qunused-arguments =
-std=3Dc++11 -fno-exceptions -fno-rtti -stdlib=3Dlibc++ =
-Wno-c++11-extensions  -Wl,--gc-sections -o lldb.full  Driver.o =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/liblldb/liblldb.a =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libclang/libclang.a =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libllvm/libllvm.a  =
-ledit  -lpanel  -lncursesw   -lz -lpthread;'
.CURDIR=3D'/usr/src/usr.bin/clang/lldb'
.MAKE=3D'make'
.OBJDIR=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/usr.bin/clang/lldb'
.TARGETS=3D'all'
DESTDIR=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/tmp'
LD_LIBRARY_PATH=3D''
MACHINE=3D'arm'
MACHINE_ARCH=3D'armv6'
MAKEOBJDIRPREFIX=3D'/usr/obj/armv7_clang/arm.armv6'
MAKESYSPATH=3D'/usr/src/share/mk'
MAKE_VERSION=3D'20170720'
=
PATH=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/legacy/usr/sbin:/usr/ob=
j/armv7_clang/arm.armv6/usr/src/tmp/legacy/usr/bin:/usr/obj/armv7_clang/ar=
m.armv6/usr/src/tmp/legacy/bin:/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/=
usr/sbin:/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/bin:/sbin:/bin:/us=
r/sbin:/usr/bin'
SRCTOP=3D'/usr/src'
OBJTOP=3D'/usr/obj/armv7_clang/arm.armv6/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.armv7-clang-bootstrap.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/usr.bin/clang/lldb/Makefile /usr/src/lib/clang/lldb.pre.mk =
/usr/src/lib/clang/clang.pre.mk /usr/src/lib/clang/llvm.pre.mk =
/usr/src/lib/clang/clang.build.mk /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.linker.mk /usr/src/lib/clang/llvm.build.mk =
/usr/src/share/mk/bsd.prog.mk /usr/src/share/mk/bsd.init.mk =
/usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk =
/usr/src/usr.bin/clang/lldb/../Makefile.inc =
/usr/src/usr.bin/clang/lldb/../../Makefile.inc =
/usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk =
/usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.confs.mk =
/usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk =
/usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.man.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/usr.bin/clang/lldb =
/usr/src/contrib/llvm/tools/lldb/docs =
/usr/src/contrib/llvm/tools/lldb/tools/driver'
1 error

make[5]: stopped in /usr/src/usr.bin/clang/lldb
.ERROR_TARGET=3D'lldb.full'
=
.ERROR_META_FILE=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/usr.bin/clang/l=
ldb/lldb.full.meta'
.MAKE.LEVEL=3D'5'
MAKEFILE=3D''
.MAKE.MODE=3D'meta missing-filemon=3Dyes missing-meta=3Dyes silent=3Dyes =
verbose'
_ERROR_CMD=3D'c++ -mcpu=3Dcortex-a7 -mcpu=3Dcortex-a7 -target =
armv6-gnueabihf-freebsd12.0 =
--sysroot=3D/usr/obj/armv7_clang/arm.armv6/usr/src/tmp =
-B/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/bin -O -pipe =
-I/usr/src/contrib/llvm/tools/lldb/include =
-I/usr/src/contrib/llvm/tools/clang/include -DCLANG_ENABLE_ARCMT =
-DCLANG_ENABLE_STATIC_ANALYZER -I/usr/src/lib/clang/include =
-I/usr/src/contrib/llvm/include -DLLVM_BUILD_GLOBAL_ISEL =
-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS =
-DLLVM_DEFAULT_TARGET_TRIPLE=3D\"armv6-unknown-freebsd12.0-gnueabihf\" =
-DLLVM_HOST_TRIPLE=3D\"armv6-unknown-freebsd12.0\" =
-DDEFAULT_SYSROOT=3D\"\" -ffunction-sections -fdata-sections -g =
-Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable =
-Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality =
-Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef =
-Wno-address-of-packed-member -Wno-switch -Wno-switch-enum =
-Wno-knr-promoted-parameter -Wno-parentheses -Qunused-arguments =
-std=3Dc++11 -fno-exceptions -fno-rtti -stdlib=3Dlibc++ =
-Wno-c++11-extensions  -Wl,--gc-sections -o lldb.full  Driver.o =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/liblldb/liblldb.a =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libclang/libclang.a =
/usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libllvm/libllvm.a  =
-ledit  -lpanel  -lncursesw   -lz -lpthread;'
.CURDIR=3D'/usr/src/usr.bin/clang/lldb'
.MAKE=3D'make'
.OBJDIR=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/usr.bin/clang/lldb'
.TARGETS=3D'all'
DESTDIR=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/tmp'
LD_LIBRARY_PATH=3D''
MACHINE=3D'arm'
MACHINE_ARCH=3D'armv6'
MAKEOBJDIRPREFIX=3D'/usr/obj/armv7_clang/arm.armv6'
MAKESYSPATH=3D'/usr/src/share/mk'
MAKE_VERSION=3D'20170720'
=
PATH=3D'/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/legacy/usr/sbin:/usr/ob=
j/armv7_clang/arm.armv6/usr/src/tmp/legacy/usr/bin:/usr/obj/armv7_clang/ar=
m.armv6/usr/src/tmp/legacy/bin:/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/=
usr/sbin:/usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/bin:/sbin:/bin:/us=
r/sbin:/usr/bin'
SRCTOP=3D'/usr/src'
OBJTOP=3D'/usr/obj/armv7_clang/arm.armv6/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.armv7-clang-bootstrap.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/usr.bin/clang/lldb/Makefile /usr/src/lib/clang/lldb.pre.mk =
/usr/src/lib/clang/clang.pre.mk /usr/src/lib/clang/llvm.pre.mk =
/usr/src/lib/clang/clang.build.mk /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.linker.mk /usr/src/lib/clang/llvm.build.mk =
/usr/src/share/mk/bsd.prog.mk /usr/src/share/mk/bsd.init.mk =
/usr/src/share/mk/local.init.mk /usr/src/share/mk/src.init.mk =
/usr/src/usr.bin/clang/lldb/../Makefile.inc =
/usr/src/usr.bin/clang/lldb/../../Makefile.inc =
/usr/src/share/mk/bsd.libnames.mk /usr/src/share/mk/src.libnames.mk =
/usr/src/share/mk/bsd.nls.mk /usr/src/share/mk/bsd.confs.mk =
/usr/src/share/mk/bsd.files.mk /usr/src/share/mk/bsd.incs.mk =
/usr/src/share/mk/bsd.links.mk /usr/src/share/mk/bsd.man.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/usr.bin/clang/lldb =
/usr/src/contrib/llvm/tools/lldb/docs =
/usr/src/contrib/llvm/tools/lldb/tools/driver'
*** [all_subdir_usr.bin/clang/lldb] Error code 2


Build context:

=
~/sys_build_scripts.amd64-host/make_armv7_nodebug_clang_bootstrap-amd64-ho=
st.sh -j8 buildworld buildkernel

# more =
~/sys_build_scripts.amd64-host/make_armv7_nodebug_clang_bootstrap-amd64-ho=
st.sh=20
kldload -n filemon && \
script =
~/sys_typescripts/typescript_make_armv7_nodebug_clang_bootstrap-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.armv7-clang-bootstrap.amd64-hos=
t" \
WITH_META_MODE=3Dyes \
MAKEOBJDIRPREFIX=3D"/usr/obj/armv7_clang" \
make $*

# more /root/src.configs/make.conf
CFLAGS.gcc+=3D -v

# more /root/src.configs/src.conf.armv7-clang-bootstrap.amd64-host
TO_TYPE=3Darmv6
#
KERNCONF=3DGENERIC-NODBG
TARGET=3Darm
.if ${.MAKE.LEVEL} =3D=3D 0
TARGET_ARCH=3D${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITH_CROSS_COMPILER=3D
WITHOUT_SYSTEM_COMPILER=3D
#
#CPUTYPE=3Dsoft
WITH_LIBCPLUSPLUS=3D
WITH_BINUTILS_BOOTSTRAP=3D
WITH_ELFTOOLCHAIN_BOOTSTRAP=3D
WITH_CLANG_BOOTSTRAP=3D
WITH_CLANG=3D
WITH_CLANG_IS_CC=3D
WITH_CLANG_FULL=3D
WITH_CLANG_EXTRAS=3D
WITH_LLD=3D
#
# Linking lldb fails for armv6(/v7)
WITH_LLDB=3D
#
WITH_BOOT=3D
WITHOUT_LIB32=3D
WITHOUT_LIBSOFT=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-a7
XCXXFLAGS+=3D -mcpu=3Dcortex-a7
# There is no XCPPFLAGS but XCPP gets XCFLAGS content.


=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?9BF3D07D-99B0-4C9F-9329-FD05190D84D1>