[PATCH] This patch provides usage of RTEMS cross-compiler over GCC cross-compiler

Gedare Bloom gedare at rtems.org
Wed Mar 25 20:13:52 UTC 2020


short commit message is a bit wordy. It doesn't need to be a sentence.
We know it is a patch/commit.

See https://devel.rtems.org/wiki/Developer/Git#GitCommits (which
should probably be in the docs, it is linked from
https://docs.rtems.org/branches/master/eng/vc-users.html#creating-a-patch)

On Wed, Mar 25, 2020 at 12:58 PM utkarsh.rai60 at gmail.com
<utkarsh.rai60 at gmail.com> wrote:
>
> ---
>  user/start/tools.rst | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/user/start/tools.rst b/user/start/tools.rst
> index c3f039b..c3147e8 100644
> --- a/user/start/tools.rst
> +++ b/user/start/tools.rst
> @@ -76,3 +76,34 @@ 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 can't use their distribution's
> +cross-compiler for their target on rtems, e.g.,the riscv64-linux-gnu or the
space after comma


> +arm-none-eabi-gcc. 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 -``
> +  GCC support threading libraries such as ``pthread.h`` provide threading
> +  support to an application; these libraries are tailored according to RTEMS using
> +  the RTEMS cross-compiler.
This paragraph looks wrong to me. I don't think pthread.h comes
through gcc. We get it from newlib. But there are other threading
packages in gcc that we need to make "RTEMS-friendly" for languages
with threads such as Go threads (libgo) , openmp (libgomp), and maybe
others. if you want to provide one example do a bit of research to get
it right. It would also be possible to try to identify the exhaustive
set but that doesn't seem necessary.

> +
> + ``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
space after comma

I don't think we actually multilib any 32/64 bit targets, but that's
probably fine to leave be.

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


More information about the devel mailing list