Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Apr 2012 14:51:04 -0500
From:      Mark Tinguely <marktinguely@gmail.com>
To:        Tim Kientzle <kientzle@freebsd.org>
Cc:        arm@freebsd.org
Subject:   Re: Cross-buildworld works but not native build?
Message-ID:  <CAP%2BM-_Ev1TE7JEmSRbVPg3HRwMfsPVyNyR92X5UONdxmGryuaQ@mail.gmail.com>
In-Reply-To: <9AD7075B-B85D-40DB-84B7-FD630B858A30@freebsd.org>
References:  <9AD7075B-B85D-40DB-84B7-FD630B858A30@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Apr 27, 2012 at 1:48 AM, Tim Kientzle <kientzle@freebsd.org> wrote:
> I've been working with the projects/armv6 tree and have encountered a ver=
y confusing situation.
>
> On i386, this works:
> =A0$ make TARGET_ARCH=3Darm TARGET_CPUTYPE=3Darmv6 buildworld
>
> If I take the resulting world and run it on arm, then the following fails=
 (with the exact same source):
> =A0$ make buildworld
> =A0=85.
> cc =A0-O -pipe =A0-fpic -fvisibility=3Dhidden -DVISIBILITY_HIDDEN -std=3D=
gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wn=
o-pointer-sign -c /usr/src/lib/libcompiler_rt/../../contrib/compiler-rt/lib=
/umoddi3.c -o umoddi3.o
> cc =A0-O -pipe =A0-fpic -fvisibility=3Dhidden -DVISIBILITY_HIDDEN -std=3D=
gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wn=
o-pointer-sign -c /usr/src/lib/libcompiler_rt/../../contrib/compiler-rt/lib=
/umodti3.c -o umodti3.o
> cc =A0-O -pipe =A0-fpic -fvisibility=3Dhidden -DVISIBILITY_HIDDEN -std=3D=
gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wn=
o-pointer-sign -c /usr/src/lib/libcompiler_rt/__sync_fetch_and_add_4.c -o _=
_sync_fetch_and_add_4.o
> In file included from /usr/src/lib/libcompiler_rt/__sync_fetch_and_op_n.h=
:31,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from /usr/src/lib/libcompiler_rt/__sync_f=
etch_and_add_4.c:6:
> /usr/obj/usr/src/tmp/usr/include/machine/atomic.h: In function 'atomic_cm=
pset_32':
> /usr/obj/usr/src/tmp/usr/include/machine/atomic.h:491: error: 'ARM_RAS_ST=
ART' undeclared (first use in this function)
> /usr/obj/usr/src/tmp/usr/include/machine/atomic.h:491: error: (Each undec=
lared identifier is reported only once
> /usr/obj/usr/src/tmp/usr/include/machine/atomic.h:491: error: for each fu=
nction it appears in.)
> /usr/obj/usr/src/tmp/usr/include/machine/atomic.h: In function 'atomic_ad=
d_32':
> /usr/obj/usr/src/tmp/usr/include/machine/atomic.h:516: error: 'ARM_RAS_ST=
ART' undeclared (first use in this function)
>
>
> Looking at the source, ARM_RAS_START really does seem to be undeclared (i=
t's declared in sysarch.h, but atomic.h only includes sysarch.h for kernel =
builds).
>
> So it looks to me like the cross-buildworld should fail also. =A0In any c=
ase, it's not clear why the two aren't behaving the same way.
>
> Tim
>

Looks like ARM_ARCH_6 or ARM_ARCH_7A is not defined.

ARM_RAS_START/ARM_RAS_END has been removed out of the the ARMv6/ARMv7 in fa=
vor
of the ldrex/strex operations.

Also the ARM_TP_ADDRESS is not used nor mapped and uses a built-in
processor thread
register.

--Mark.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP%2BM-_Ev1TE7JEmSRbVPg3HRwMfsPVyNyR92X5UONdxmGryuaQ>