[PATCH v2] Chapter-on-need-for-RTEMS-specific-cross-compiler

Gedare Bloom gedare at rtems.org
Fri Apr 3 13:15:40 UTC 2020


On Thu, Apr 2, 2020 at 11:38 PM Utkarsh Rai <utkarsh.rai60 at gmail.com> wrote:
>
>
> On Fri, Apr 3, 2020 at 8:15 AM Chris Johns <chrisj at rtems.org> wrote:
>>
>> On 2020-03-28 00:13, utkarsh.rai60 at gmail.com wrote:
>> > ---
>> >   user/start/tools.rst | 34 ++++++++++++++++++++++++++++++++++
>> >   1 file changed, 34 insertions(+)
>> >
>> > diff --git a/user/start/tools.rst b/user/start/tools.rst
>> > index c3f039b..8ea1f64 100644
>> > --- a/user/start/tools.rst
>> > +++ b/user/start/tools.rst
>> > @@ -3,6 +3,7 @@
>> >   .. Copyright (C) 2019 embedded brains GmbH
>> >   .. Copyright (C) 2019 Sebastian Huber
>> >   .. Copyright (C) 2020 Chris Johns
>> > +.. Copyright (C) 2020 Utkarsh Rai
>> >
>> >   .. _QuickStartTools:
>> >
>> > @@ -76,3 +77,36 @@ source code used.
>> >
>> >
>> >   Add ``--verbose`` to the GCC command for the the verbose version details.
>> > +
>> > +
>> > +Need for RTEMS-Specific Cross-Compiler
>> > +--------------------------------------------
>>
>> Length of ---'s does not match the heading.
>>
>> > +
>> > +New users are often confused as to why they cannot use their distribution's
>> > +cross-compiler for their target on rtems, e.g., the riscv64-linux-gnu or the
>> > +arm-none-eabi-gcc on RTEMS. Below mentioned are some of the reasons for using
>> > +the RTEMS cross-compiler.
>> > +
>> > + ``Correct configuration of Newlib -``
>> > +     Newlib is a C standard library implementation intended for use on embedded
>> > +     systems. Most of the POSIX and libc support for RTEMS is derived from
>> > +     Newlib. The RTEMS cross-compiler configures Newlib correctly for RTEMS.
>> > +
>> > + ``Threading in GCC support libraries -``
>> > +     Several threading packages in GCC such as Go threads (libgo), OpenMP
>> > +     (libgomp), and OpenACC need to be customized according to RTEMS. This is
>> > +     done by the RTEMS specific cross-compiler.
>> > +
>> > + ``Provide preprocessor define __rtems__ -``
>> > +     The  ``__rtems__``  preprocessor define is used to provide conditional code
>> > +     compilation in source files that are shared with other projects e.g. in
>> > +     Newlib or imported code from FreeBSD.
>> > +
>> > + ``Multilib variants to match the BSP -``
>> > +     RTEMS configures GCC to create separate runtime libraries for each
>> > +     supported instruction set, floating point unit, vector unit, word size
>> > +     (e.g. 32-bit and 64-bit), endianness, ABI, processor errata workarounds,
>> > +     and so on in the architecture. These libraries are termed multilib variants
>> > +     (https://docs.rtems.org/branches/master/user/hardware/architectures.html?highlight=multilib).
>>
>> Please do not add external links to internal parts of the same document.
>> Please use :ref: to do this. A link like this breaks on branches and PDFs.
>>
> Would it be ok to just add reference to the architecture section of the doc?

Yes.

>>
>> Chris
>>
>> > +     Multilibs variants to match the BSP are set by selecting a specific set of
>> > +     machine options using the RTEMS cross-compiler.
>> >
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list