nios2 and atomic operations
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Apr 20 19:36:54 UTC 2015
----- Joel Sherrill <joel.sherrill at oarcorp.com> schrieb:
>
>
> On 4/20/2015 2:18 PM, Sebastian Huber wrote:
> > ----- Joel Sherrill <joel.sherrill at oarcorp.com> schrieb:
> >> Hi
> >>
> >> As I mentioned earlier, nios2 does not link C++ iostream because of an
> >> undefined reference:
> >>
> >> /users/joel/rtems-4.11-work/tools/lib/gcc/nios2-rtems4.11/4.9.2/libstdc++.a(locale-inst.o):/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:49:
> >> more undefined references to `__sync_fetch_and_add_4' follow
> >>
> >> I don't see anything obviously different about this target. Can someone
> >> take a look at this please? It has to be something small.
> > I guess Nios II lacks support for atomic operations, so the operating system must provide them in terms of helper functions. Maybe we need a port of libatomic for this target. It looks like something bigger.
> >
> That's what I was coming to believe. But why don't see this on other
> targets?
> I don't see how libatomic would be broken for just Nios2. We don't have
> RTEMS
> specific configuration in it and it only has a few ports.
As far as I know we have no support of libatomic for RTEMS.
>
> What do you mean by "It looks like something bigger"?
The Linux Nios2 configuration has something like this:
/* Implement TARGET_INIT_LIBFUNCS. */
static void
nios2_init_libfuncs (void)
{
/* For Linux, we have access to kernel support for atomic operations. */
if (TARGET_LINUX_ABI)
init_sync_libfuncs (UNITS_PER_WORD);
}
You have to dig into the GCC configuration, and this is always time consuming. I would file a GCC PR.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list