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

Utkarsh Rai utkarsh.rai60 at gmail.com
Fri Apr 3 15:14:44 UTC 2020


Please ignore this patch, forgot to mention copyright details.

On Fri, Apr 3, 2020 at 8:24 PM utkarsh.rai60 at gmail.com <
utkarsh.rai60 at gmail.com> wrote:

> ---
>  user/start/tools.rst | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
>
> diff --git a/user/start/tools.rst b/user/start/tools.rst
> index c3f039b..494e95a 100644
> --- a/user/start/tools.rst
> +++ b/user/start/tools.rst
> @@ -76,3 +76,36 @@ source code used.
>
>
>  Add ``--verbose`` to the GCC command for the the verbose version details.
> +
> +
> +Need for RTEMS-Specific Cross-Compiler
> +---------------------------------------------------------
> +
> +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 as
> :ref:`Multilib
> +     <TargetArchitectures>` variants. Multilib variants to match the BSP
> are set
> +     by selecting a specific set of machine options using the RTEMS
> +     cross-compiler.
> --
> 2.17.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200403/fc8ad88b/attachment.html>


More information about the devel mailing list