Multilib question

Chris Johns cjohns at
Fri Feb 22 13:28:38 UTC 2002

Bill Butler wrote:
> Could someone explain what multilib is for.  I get the feeling it is
> Grand.. I just don't understand enough about it to know why.

Multilib is the term gcc uses to create a build of compiler for a
processor family. You can see what your compiler supports with :

 $ m68k-rtems-gcc -print-multi-lib
 m68040/msoft-float;@m68040 at msoft-float
 m68060/msoft-float;@m68060 at msoft-float 

So a m68k target of gcc can support a number of processors in the
family. Newlib uses this info to determine the number and type of
libraries it builds. RTEMS borrows this term.

So why does RTEMS needs this ?

The support for a cpu is selected by the configuration of a BSP you
build. Currently you take an existing but close BSP and copy it in the
source tree and build RTEMS including the core, networking stack, etc.
The result is a library that is specific to your hardware how-ever most
of the code in the library is the same for all BSPs that use that
processor. So why not separate the BSP from the core code that you
generally do not change and build multiple libraries (or multilibs) for
a processor family.

The ability to create a set of RTEMS core libraries for a specific
processor that all BSP's for that processor use means binary
distributions can become a reality. Adding this to the excellent set of
binary tools OAR Corp currently offers means entry and maintance of
RTEMS for a user becomes simpler. Other reasons exist. For example I can
have a single set of tested libs can be used by a number of BSPs. The
BSP provides the boot code, specific drivers etc.

The way BSP's are maintained opens up. For example the release cycle for
BSPs can increase while the core kernel which has a long release cycle
can remain at its current rate. A BSP release cycle is high while being

I am sure other good reasons exist that I have missed so I hope this
helps you understand why.

 Chris Johns, cjohns at

More information about the users mailing list