Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 May 2014 15:25:14 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        Boris Samorodov <bsam@passap.ru>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: [arm cross-compiling, clang] Error: selected processor does not support `ldrexd r2,r3,[r1]'
Message-ID:  <1400448314.1152.26.camel@revolution.hippie.lan>
In-Reply-To: <5379134B.9000502@passap.ru>
References:  <5378D64C.2000903@passap.ru> <5378DB4E.5030305@passap.ru> <1400431085.1152.24.camel@revolution.hippie.lan> <5379134B.9000502@passap.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2014-05-19 at 00:08 +0400, Boris Samorodov wrote:
> 18.05.2014 20:38, Ian Lepore =D0=C9=DB=C5=D4:
> > On Sun, 2014-05-18 at 20:09 +0400, Boris Samorodov wrote:
> >> 18.05.2014 19:48, Boris Samorodov =D0=C9=DB=C5=D4:
> >>> Hi All,
> >>>
> >>> The system:
> >>> -----
> >>> % uname -a
> >>> FreeBSD bb052.bsnet 11.0-CURRENT FreeBSD 11.0-CURRENT #92 r266163: =
Thu
> >>> May 15 23:22:26 SAMT 2014
> >>> bsam@bb052.bsnet:/usr/obj/usr/src/sys/BB64X  amd64
> >>>
> >>> % clang --version
> >>> FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 201=
40512
> >>> Target: x86_64-unknown-freebsd11.0
> >>> Thread model: posix
> >>> -----
> >>>
> >>> While cross-compiling (sources r266396) I get:
> >>> -----
> >>> % make -C /usr/src ARCH=3Darm TARGET_ARCH=3Darmv6 buildworld
> >>
> >> Hm, at https://wiki.freebsd.org/EmbeddedHandbook one more option
> >> is listed: "TARGET_CPUTYPE=3Darmv6". Trying this.
> >>
> >>> [...]
> >>> =3D=3D=3D> lib/clang/liblldbAPI (all)
> >>> c++   -O -pipe
> >>> -I/usr/src/lib/clang/liblldbAPI/../../../contrib/llvm/tools/lldb/in=
clude
> >>> -I/usr/src/lib/clang/liblldbAPI/../../
> >>> ../contrib/llvm/tools/lldb/source
> >>> -I/usr/src/lib/clang/liblldbAPI/../../../contrib/llvm/include
> >>> -I/usr/src/lib/clang/liblldbAP
> >>> I/../../../contrib/llvm/tools/clang/include
> >>> -I/usr/src/lib/clang/liblldbAPI/../../../contrib/llvm/tools/lldb/so=
urce/API
> >>> -I. -I
> >>> /usr/src/lib/clang/liblldbAPI/../../../contrib/llvm/../../lib/clang=
/include
> >>> -DLLVM_ON_UNIX -DLLVM_ON_FREEBSD -D__STDC_LIMIT_MA
> >>> CROS -D__STDC_CONSTANT_MACROS -fno-strict-aliasing
> >>> -DLLVM_DEFAULT_TARGET_TRIPLE=3D\"armv6-gnueabi-freebsd11.0\" -DLLVM=
_HOST_TRIP
> >>> LE=3D\"armv6-unknown-freebsd11.0\" -DDEFAULT_SYSROOT=3D\"\"
> >>> -Qunused-arguments -std=3Dc++11 -DLLDB_DISABLE_PYTHON -fno-exceptio=
ns -f
> >>> no-rtti -Wno-c++11-extensions -c
> >>> /usr/src/lib/clang/liblldbAPI/../../../contrib/llvm/tools/lldb/sour=
ce/API/SBAddress.cpp
> >>> -o SB
> >>> Address.o
> >>> /tmp/SBAddress-9939f3.s: Assembler messages:
> >>> /tmp/SBAddress-9939f3.s:92: Error: selected processor does not supp=
ort
> >>> `ldrexd r2,r3,[r1]'
> >>> /tmp/SBAddress-9939f3.s:141: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:311: Error: selected processor does not sup=
port
> >>> `ldrexd r8,r9,[r0]'
> >>> /tmp/SBAddress-9939f3.s:312: Error: selected processor does not sup=
port
> >>> `strexd r1,r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:320: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:325: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:329: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:330: Error: selected processor does not sup=
port
> >>> `strexd r2,r4,r5,[r0]'
> >>> /tmp/SBAddress-9939f3.s:379: Error: selected processor does not sup=
port
> >>> `ldrexd r0,r1,[r0]'
> >>> /tmp/SBAddress-9939f3.s:507: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:511: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r0]'
> >>> /tmp/SBAddress-9939f3.s:512: Error: selected processor does not sup=
port
> >>> `strexd r2,r8,r9,[r0]'
> >>> /tmp/SBAddress-9939f3.s:665: Error: selected processor does not sup=
port
> >>> `ldrexd r4,r5,[r1]'
> >>> /tmp/SBAddress-9939f3.s:671: Error: selected processor does not sup=
port
> >>> `ldrexd r6,r7,[r1]'
> >>> /tmp/SBAddress-9939f3.s:678: Error: selected processor does not sup=
port
> >>> `ldrexd r2,r3,[r1]'
> >>> /tmp/SBAddress-9939f3.s:679: Error: selected processor does not sup=
port
> >>> `strexd r2,r6,r7,[r1]'
> >>> /tmp/SBAddress-9939f3.s:739: Error: selected processor does not sup=
port
> >>> `ldrexdne r0,r1,[r0]'
> >>> c++: error: assembler command failed with exit code 1 (use -v to se=
e
> >>> invocation)
> >>> *** Error code 1
> >>>
> >>> Stop.
> >>> make[6]: stopped in /usr/src/lib/clang/liblldbAPI
> >>> *** Error code 1
> >>> -----
> >=20
> > While I don't think it should affect this problem, "ARCH=3Darm" isn't
> > needed.  If anything it would be TARGET=3Darm, but that's implied by =
the
> > TARGET_ARCH=3Darmv6.
>=20
> You are right, that didn't help. The build has faild with the same
> error.
>=20
> > I suspect the problems you're seeing are more fallout from all the
> > recent WITH/WITHOUT build system changes.  I've been so focused on do=
ing
> > arm MFCs for the past week I haven't tried to build -current for a fe=
w
> > days.
> >=20
> > Since 10-stable is now in sync [1] with -current for arm stuff, but
> > doesn't have all the recent build system changes, that might be a
> > workable alternative for you for now... just build 10-stable instead =
of
> > -current.
>=20
> Well, the thing is I don't have any 10-stable...
>=20
> > [1] mostly -- I'm still finding a few misc changesets that I missed o=
n
> > the first pass, and build/run testing of 10-stable on arm is just
> > beginning.
>=20
> It's definitely not my day -- crochet build failed with:
> -----
> --- all_subdir_libllvmarmcodegen ---
> /usr/src/lib/clang/libllvmarmcodegen/../../../contrib/llvm/lib/Target/A=
RM/ARMBaseInstrInfo.cpp:3687:15:
> error: no member named
>  'VLD1d64TPseudoWB_fixed' in namespace 'llvm::ARM'; did you mean
> 'VST1d64TPseudoWB_fixed'?
>     case ARM::VLD1d64TPseudoWB_fixed:
>          ~~~~~^~~~~~~~~~~~~~~~~~~~~~
>               VST1d64TPseudoWB_fixed
> ./ARMGenInstrInfo.inc.h:1969:5: note: 'VST1d64TPseudoWB_fixed' declared=
 here
>     VST1d64TPseudoWB_fixed      =3D 1953,
>     ^
> /usr/src/lib/clang/libllvmarmcodegen/../../../contrib/llvm/lib/Target/A=
RM/ARMBaseInstrInfo.cpp:3704:15:
> error: no member named
>  'VLD1d64QPseudoWB_fixed' in namespace 'llvm::ARM'; did you mean
> 'VST1d64QPseudoWB_fixed'?
>     case ARM::VLD1d64QPseudoWB_fixed:
>          ~~~~~^~~~~~~~~~~~~~~~~~~~~~
>               VST1d64QPseudoWB_fixed
> ./ARMGenInstrInfo.inc.h:1963:5: note: 'VST1d64QPseudoWB_fixed' declared=
 here
>     VST1d64QPseudoWB_fixed      =3D 1947,
> -----

I've seen others report this error recently, and it was caused by an
update to clang.  There's a dependency glitch so that some header files
don't get regenerated correctly; I think that has been fixed, but to get
the fix in place you have to clean out obj/arm.armv6 and build fresh.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1400448314.1152.26.camel>