diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-12-15 15:22:18 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-12-16 11:34:47 +0100 |
commit | 48cfe6819e76c1405e6d13dcca319b7c76000a7b (patch) | |
tree | 0938e436bd50ca8353c7d4e4da5556379bef52c3 /doc/cpu_supplement/general.t | |
parent | Delete CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM (diff) | |
download | rtems-48cfe6819e76c1405e6d13dcca319b7c76000a7b.tar.bz2 |
doc: Add multilib section to CPU supplement
Add multilib section for ARM and PowerPC
Diffstat (limited to '')
-rw-r--r-- | doc/cpu_supplement/general.t | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/cpu_supplement/general.t b/doc/cpu_supplement/general.t index 3d84c2a901..82b8dcbbd4 100644 --- a/doc/cpu_supplement/general.t +++ b/doc/cpu_supplement/general.t @@ -102,6 +102,36 @@ the FP software emulation will be context switched. @c @c @c +@section Multilibs + +Newlib and GCC provide several target libraries like the @file{libc.a}, +@file{libm.a} and @file{libgcc.a}. These libraries are artifacts of the GCC +build process. Newlib is built together with GCC. To provide optimal support +for various chip derivatives and instruction set revisions multiple variants of +these libraries are available for each architecture. For example one set may +use software floating point support and another set may use hardware floating +point instructions. These sets of libraries are called @emph{multilibs}. Each +library set corresponds to an application binary interface (ABI) and +instruction set. + +A multilib variant can be usually detected via built-in compiler defines at +compile-time. This mechanism is used by RTEMS to select for example the +context switch support for a particular BSP. The built-in compiler defines +corresponding to multilibs are the only architecture specific defines allowed +in the @code{cpukit} area of the RTEMS sources. + +Invoking the GCC with the @code{-print-multi-lib} option lists the available +multilibs. Each line of the output describes one multilib variant. The +default variant is denoted by @code{.} which is selected when no or +contradicting GCC machine options are selected. The multilib selection for a +target is specified by target makefile fragments (see file @file{t-rtems} in +the GCC sources and section +@uref{https://gcc.gnu.org/onlinedocs/gccint/Target-Fragment.html#Target-Fragment,The Target Makefile Fragment} +in the @uref{https://gcc.gnu.org/onlinedocs/gccint/,GCC Internals Manual}. + +@c +@c +@c @section Calling Conventions Each high-level language compiler generates subroutine entry and exit |