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