[PATCH v2] Chapter-on-need-for-RTEMS-specific-cross-compiler
Chris Johns
chrisj at rtems.org
Fri Apr 3 02:45:35 UTC 2020
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.
Chris
> + Multilibs variants to match the BSP are set by selecting a specific set of
> + machine options using the RTEMS cross-compiler.
>
More information about the devel
mailing list