multiple definition of __getreent (in newlib's crt0.c and RTEMS' confdefs.h)

Amaan Cheval amaan.cheval at
Tue Apr 17 08:35:49 UTC 2018

Great tips, thank you for the help!
Updating the bsp_specs to replace startfile with crtbegin.o did let me get
past the the __getreent problems. It seems like I'll need to learn much
more about linker scripts and the GCC spec syntax than I currently know to
do this right - I've currently only worked around issues in those regards
with guesses / copying blindly from other archs and testing.

I'll read the scripts used for other architectures and the following
resources in the meantime to better understand how this ought to be
structured to be correct. Let me know if you have any other resources you'd

On Tue, Apr 17, 2018 at 12:13 PM Sebastian Huber <
sebastian.huber at> wrote:

> Hello,

> you found a nasty piece in the RTEMS Newlib/GCC configuration. Newlib
> provides a crt0.o file which contains a bunch of global symbols suitable
> enough to make the GCC link-time configure tests happy. This file must
> never be used for a real RTEMS application. The default startfile of GCC
> (which is this Newlib ctr0.o) must be overruled.  This is usually done
> be the bsp_specs.  See also


> --
> 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
> PGP     : Public key available on request.

> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the devel mailing list