source: rtems-docs/rsb/why-build-from-source.rst @ 9e18bcb

5
Last change on this file since 9e18bcb was 9e18bcb, checked in by Sebastian Huber <sebastian.huber@…>, on 01/10/19 at 11:52:24

rsb: Move "Why Build from Source?" to own chapter

  • Property mode set to 100644
File size: 3.5 KB
RevLine 
[9e18bcb]1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 2012, 2016 Chris Johns <chrisj@rtems.org>
4
5Why Build from Source?
6======================
7
8The RTEMS Source Builder is not a replacement for the binary install systems
9you have with commercial operating systems or open source operating system
10distributions. Those products and distributions are critically important and
11are the base that allows the RSB to work. The RTEMS Source Builder sits
12somewhere between you manually entering the commands to build a tool set and a
13tool such as ``yum`` or ``apt-get`` to install binary packages made
14specifically for your host operating system. Building manually or installing a
15binary package from a remote repository are valid and real alternatives. The
16RSB provides the specific service of repeatably being able to build tool sets
17from source code. The process leaves you with the source code used to build
18the tools and the ability to rebuilt it.
19
20If you are developing a system or product that has a long shelf life or is used
21in a critical piece of infrastructure that has a long life cycle being able to
22build from source is important. It insulates the project from the fast ever
23changing world of the host development machines. If your tool set is binary and
24you have lost the ability to build it you have lost a degree of control and
25flexibility open source gives you. Fast moving host environments are
26fantastic. We have powerful multi-core computers with huge amounts of memory
27and state of the art operating systems to run on them however the product or
28project you are part of may need to be maintained well past the life time of
29these host. Being able to build from source an important and critical part of
30this process because you can move to a newer host and create an equivalent tool
31set.
32
33Building from source provides you with control over the configuration of the
34package you are building. If all or the most important dependent parts are
35built from source you limit the exposure to host variations. For example the
36GNU C compiler (gcc) currently uses a number of 3rd party libraries internally
37(gmp, mpfr, etc). If your validated compiler generating code for your target
38processor is dynamically linked against the host's version of these libraries
39any change in the host's configuration may effect you. The changes the host's
40package management system makes may be perfectly reasonable in relation to the
41distribution being managed however this may not extend to you and your
42tools. Building your tools from source and controlling the specific version of
43these dependent parts means you are not exposing yourself to unexpected and
44often difficult to resolve problems. On the other side you need to make sure
45your tools build and work with newer versions of the host operating
46system. Given the stability of standards based libraries like ``libc`` and ever
47improving support for standard header file locations this task is becoming
48easier.
49
50The RTEMS Source Builder is designed to be audited and incorporated into a
51project's verification and validation process. If your project is developing
52critical applications that needs to be traced from source to executable code in
53the target, you need to also consider the tools and how to track them.
54
55If your IT department maintains all your computers and you do not have suitable
56rights to install binary packages, building from source lets you create your
57own tool set that you install under your home directory. Avoiding installing
58any extra packages as a super user is always helpful in maintaining a secure
59computing environment.
Note: See TracBrowser for help on using the repository browser.