summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2016-07-04 12:30:09 +1000
committerChris Johns <chrisj@rtems.org>2016-07-04 12:30:09 +1000
commit86518bd3ddeecc23d93344f085b042246e4adfdf (patch)
treec866aa35543e6a9895dd2a3a30b0e76953eb779a
parent6d7a4d2ee7053488f625faccc8bd4dc4d25d6460 (diff)
downloadrtems-docs-86518bd3ddeecc23d93344f085b042246e4adfdf.tar.bz2
Reorganisse the User Manual to make it easier to navigate.
-rw-r--r--user/conf.py25
-rw-r--r--user/ecosys/index.rst87
-rw-r--r--user/glossary/index.rst2
-rw-r--r--user/hosts/index.rst50
-rw-r--r--user/hosts/macos.rst21
-rw-r--r--user/hosts/os.rst32
-rw-r--r--user/hosts/posix.rst39
-rw-r--r--user/hosts/windows.rst (renamed from user/start/depend.rst)143
-rw-r--r--user/index.rst13
-rw-r--r--user/installation/developer.rst (renamed from user/start/windows.rst)225
-rw-r--r--user/installation/index.rst47
-rw-r--r--user/installation/prefixes-sandboxing.rst (renamed from user/start/basics.rst)8
-rw-r--r--user/installation/releases.rst (renamed from user/start/releases.rst)42
-rw-r--r--user/overview/index.rst36
-rw-r--r--user/start/development.rst609
-rw-r--r--user/start/index.rst84
-rw-r--r--user/start/quick.rst68
-rw-r--r--user/support/index.rst30
-rw-r--r--user/tools/index.rst16
19 files changed, 734 insertions, 843 deletions
diff --git a/user/conf.py b/user/conf.py
index d6a5277..d22b347 100644
--- a/user/conf.py
+++ b/user/conf.py
@@ -10,17 +10,30 @@ project = "RTEMS User Manual"
exclude_patterns = ['config/build.rst',
'config/runtime.rst',
+
+ 'start/installation.rst',
'start/basics.rst',
'start/depend.rst',
+ 'start/quick.rst',
+
'start/transition.rst',
- 'start/releases.rst',
- 'start/development.rst',
- 'start/installation.rst',
- 'start/windows.rst',
- 'test/create.rst',
- 'test/running.rst',
+
+ 'hosts/os.rst',
+ 'hosts/prefixes.rst',
+ 'hosts/macos.rst',
+ 'hosts/posix.rst',
+ 'hosts/windows.rst',
+
+ 'installation/prefixes-sandboxing.rst',
+ 'installation/releases.rst',
+ 'installation/developer.rst',
+
'tools/build.rst',
'tools/simulation.rst',
+
+ 'test/create.rst',
+ 'test/running.rst',
+
'waf/index.rst']
latex_documents = [
diff --git a/user/ecosys/index.rst b/user/ecosys/index.rst
new file mode 100644
index 0000000..c7f7f0c
--- /dev/null
+++ b/user/ecosys/index.rst
@@ -0,0 +1,87 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+.. _ecosystem:
+
+RTEMS Ecosystem
+===============
+.. index:: Ecosystem
+
+The RTEMS Ecosystem is the collection of tools, packages, code, documentation
+and online content provided by the RTEMS Project. The ecosystem provides a way
+to develop, maintain, and use RTEMS. It's parts interact with the user, the
+host environment, and each other to make RTEMS accessable, useable and
+predicable.
+
+The ecosystem is for users, developers and maintainers and it is an on going
+effort that needs your help and support. The RTEMS project is always improving
+the way it delivers the kernel to you and your feedback is important so please
+join the mailing lists and contribute back comments, success stories, bugs and
+patches.
+
+What the RTEMS project describes here to develop, maintain and use RTEMS does
+not dictate what you need to use in your project. You can and should select the
+work-flow that best suites the demands of your project and what you are
+delivering.
+
+Rational
+--------
+
+RTEMS is complex and the focus of the RTEMS Ecosystem is to simplify the
+complixity for users by providing a stable documented way to build, configure
+and run RTEMS. RTEMS is more than a kernel running real-time applications on
+target hardware, it is part of a project's and therefore team's workflow and
+every project and team is different.
+
+RTEMS's ecosystem does not mandate a way to work. It is a series of parts,
+components, and items that are used to create a suitable development
+environment to work with. The processes explained in this manual are the same
+things an RTEMS maintainer does to maintain the kernel or an experienced user
+does to build their production system. It is important to keep this in mind
+when working through this manual. We encourage users to explore what can be
+done and to discover ways to make it fit their needs. The ecosystem provided by
+the RTEMS Project will not install in a single click of a mouse because we want
+users to learn the parts they will come to depend on as their project's
+development matures.
+
+The RTEMS Ecosystem provides a standard interface that is the same on all
+supported host systems. Standardizing how a user interacts with RTEMS is
+important and making that experience portable is also important. As a result
+the ecosystem is documented at the command line level and we leave GUI and IDE
+integration for users and integrators.
+
+Standardizing the parts and how to use them lets users create processes and
+procedures that are stable over releases. The RTEMS Ecosystem generates data
+that can be used to audit the build process so their configuration can be
+documented.
+
+The ecosystem is based around the source code used in the various parts,
+compontents and items of the RTEMS development environment. A user can create
+an archive of the complete build process including all the source code for long
+term storage. This is important for projects with a long life cycle.
+
+Open Source
+-----------
+
+RTEMS is an open source operating system and an open source project and this
+extends to the ecosystem. We encourage users to integrate the processes to
+build tools, the kernel and any 3rd party libraries into their project's
+configuration management processes.
+
+All the parts that make up the ecosystem are open source. The ecosystem uses a
+package's source code to create an executable on a host so when an example
+RTEMS executable is created and run for the first time the user will have built
+every tool as well as the executable from source. The RTEMS Project believes
+the freedom this gives a user is as important as the freedom of having access
+to the source code for a package.
+
+Deployment
+----------
+
+The RTEMS Project provides the ecosystem as source code that users can download
+to create personalised development environments. The RTEMS Project does not
+provide packaging and deployment for a specific host environment, target
+architecture or BSP. The RTEMS Project encourages users and organizations to
+fill this role for the community.
diff --git a/user/glossary/index.rst b/user/glossary/index.rst
index 7688cda..fa8caa7 100644
--- a/user/glossary/index.rst
+++ b/user/glossary/index.rst
@@ -1,8 +1,6 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-.. _glossary:
-
Glossary
========
diff --git a/user/hosts/index.rst b/user/hosts/index.rst
new file mode 100644
index 0000000..5d562e8
--- /dev/null
+++ b/user/hosts/index.rst
@@ -0,0 +1,50 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+.. _host-computer:
+
+.. _development-host:
+
+Host Computer
+-------------
+.. index:: Host Computer
+
+RTEMS applications are developed using cross-development tools running on a
+development computer, more often called the host computer. These are typically
+your desktop machine or a special build server. All RTEMS tools and runtime
+libraries are built from source on your host machine. The RTEMS Project does
+not maintain binary builds of the tools. This differs to what you normally
+experience with host operating systems, and it is, however this approach works
+well. RTEMS is not a host operating system and it is not a
+distrbution. Deploying binary packages for every possible host operating system
+is too big a task for the RTEMS Project and it is not a good use of core
+developer time. Their time is better spent making RTEMS better and faster.
+
+The RTEMS Project's aim is to give you complete freedom to decide on the
+languages used in your project, which version control system, and the build
+system for your application.
+
+The rule for selecting a computer for a developer is `more is better` but we do
+understand there are limits. Projects set up different configurations, some
+have a development machine per developer while others set up a tightly
+controlled central build server. RTEMS Ecosystem is flexible and lets you
+engineer a development environment that suites you. The basic specs are:
+
+- Multicore processor
+- 8G bytes RAM
+- 256G harddisk
+
+RTEMS makes no demands on graphics.
+
+If you are using a VM or your host computer is not a fast modern machine do not
+be concerned. The tools may take longer to build than faster hardware however
+building tools is something you do once. Once the tools and RTEMS is built all
+your time can be spent writing and developing your application. Over an hour
+can happen and for the ARM architecture and with all BSPs it can be many hours.
+
+.. include:: os.rst
+.. include:: posix.rst
+.. include:: macos.rst
+.. include:: windows.rst
diff --git a/user/hosts/macos.rst b/user/hosts/macos.rst
new file mode 100644
index 0000000..426b303
--- /dev/null
+++ b/user/hosts/macos.rst
@@ -0,0 +1,21 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+.. _macos:
+
+Apple OS X
+~~~~~~~~~~
+
+Apple's OS X is fully supported. You need to download and install a recent
+version of the Apple developer application Xcode. Xocde is available in the App
+Store. Make sure you install the Command Line Tools add on available for
+download within Xcode and once installed open a Terminal shell and enter the
+command ``cc`` and accept the license agreement.
+
+The normal prefix when working on OS X as a user is under your home directory.
+Prefixes of :file:`$HOME/development/rtems` or :file:`$HOME/rtems` are
+suitable.
+
+:ref:`prefixes` details using Prefixes to manage the installation.
diff --git a/user/hosts/os.rst b/user/hosts/os.rst
new file mode 100644
index 0000000..9197144
--- /dev/null
+++ b/user/hosts/os.rst
@@ -0,0 +1,32 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+.. _host-os:
+
+Host Operating Systems
+~~~~~~~~~~~~~~~~~~~~~~
+
+.. sidebar:: *GDB and Python*
+
+ RTEMS uses Python in GDB to aid debugging which means GDB needs to be built
+ with Python development libraries. Please check the RSB documentation and
+ install the packages specified for your host. Make sure a python development
+ package is included.
+
+A wide range of host operating systems and hardware can be used. The host
+operating systems supported are:
+
+- Linux
+- FreeBSD
+- NetBSD
+- Apple OS X
+- Windows
+- Solaris
+
+The functionality on a POSIX operating such as Linux and FreeBSD is similar and
+most features on Windows are supported but you are best to ask on the
+:r:list:`users` if you have a specific question.
+
+We recommend you maintain your operating system by installing any updates.
diff --git a/user/hosts/posix.rst b/user/hosts/posix.rst
new file mode 100644
index 0000000..fd4fb6c
--- /dev/null
+++ b/user/hosts/posix.rst
@@ -0,0 +1,39 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+.. _posix-hosts:
+
+POSIX Hosts
+~~~~~~~~~~~
+
+POSIX hosts are most Unix operating systems such as Linux, FreeBSD and
+NetBSD. RTEMS development works well on Unix and can scale from a single user
+and a desktop machine to a team with decentralised or centralised development
+infrastructure.
+
+Root Access
+^^^^^^^^^^^
+
+You either have ``root`` access to your host development machine or you do
+not. Some users are given hardware that is centrally managed. If you do not
+have ``root`` access you can create your work environment in your home
+directory. You could use a prefix of :file:`$HOME/development/rtems` or
+:file:`$HOME/rtems`. Note, the ``$HOME`` environment variable can be
+substituted with ``~``.
+
+:ref:`prefixes` details using Prefixes to manage the installation.
+
+RTEMS Tools and packages do not require ``root`` access
+to be built and we encourage you to not build the tools as ``root``. If you
+need to control write access then it is best to manage this with groups
+assigned to users.
+
+If you have ``root`` access you can decide to install the tools under any
+suitable prefix. This may depend on the hardware in your host development
+machine. If the machine is a centralised build server the prefix may be used to
+separate production versions from the test versions and the prefix paths may
+have restricted access rights to only those who manage and have configuration
+control of the machine. We call this project sandboxing and
+:ref:`project-sandboxing` explains this in more detail.
diff --git a/user/start/depend.rst b/user/hosts/windows.rst
index 73c54f6..093fa31 100644
--- a/user/start/depend.rst
+++ b/user/hosts/windows.rst
@@ -3,127 +3,10 @@
.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
.. comment: All rights reserved.
-.. _development-hosts:
-
-Development Hosts
-=================
-.. index:: Hosts
-
-RTEMS applications are developed using cross-development tools running on a
-host computer, typically your desktop or a special build server. All RTEMS
-tools and runtime libraries are built from source on your host machine. The
-RTEMS Project does not maintain binary builds of the tools. This may appear be
-the opposite to what you normally experience with host operating systems, and
-it is, however this approach works well. RTEMS is not a host operating system
-and it is not a distrbution. Providing binary packages for every possible host
-operating system is too big a task for the RTEMS Project and it is not a good
-use of core developer time. Their time is better spent making RTEMS better and
-faster.
-
-Developer Computer
-------------------
-
-The rule for selecting a computer for a developer is `more is better` but we do
-understand there are limits. Projects set up different configurations and what
-is described here is not an approved set up, rather it is a guide. Some
-projects have a suitable development machine per developer while others set up
-a tightly controlled central build server. RTEMS is flexible and lets you
-engineer a development environment that suites you. The basic specs are:
-
-- Multicore processor
-- 8G bytes RAM
-- 256G harddisk
-
-RTEMS makes no demands on graphics.
-
-If you are using a VM or your host computer is not a fast modern machine do not
-be concerned. The tools may take longer to build than faster hardware however
-building tools is something you do once. Once the tools and RTEMS is built all
-your time can be spent writing and developing your application. Over an hour
-does happen and for the ARM architecture with all BSPs it can be many hours.
-
-Host Software
--------------
-
-A wide range of host operating systems and hardware can be used. The host
-operating systems supported are:
-
-- Linux
-- FreeBSD
-- NetBSD
-- Apple OS X
-- Windows
-- Solaris
-
-The functionality on a POSIX operating such as Linux and FreeBSD is similar and
-most features on Windows are supported but you are best to ask on the
-:r:list:`users` if you have a specific question.
-
-We recommend you maintain your operating system by installing any updates.
-
-POSIX Hosts
------------
-
-.. sidebar:: *GDB and Python*
-
- RTEMS uses Python in GDB to aid debugging which means GDB needs to be built
- with Python development libraries. Please check the RSB documentation and
- install the packages specified for your host. Make sure a python development
- package is included.
-
-POSIX hosts are most Unix operating systems such as Linux, FreeBSD and
-NetBSD. RTEMS development works well on Unix and can scale from a single user
-and a desktop machine to a team with decentralised or centralised development
-infrastructure. The RTEMS project provides you with the development tools and
-aids to help you create an environment that matches your project's needs. The
-RTEMS Project's aim is to give you complete freedom to decide on the languages
-used in your project, which version control system, and the build system for
-your application.
-
-The following are a few ways you can set up a suitable environment. You are not
-limited to what is present here. A common factor that defines the final
-location of tools and projects is the place you have suitable storage. The
-following set ups assume suitable disk space and disk performance.
-
-Administrator Access
-~~~~~~~~~~~~~~~~~~~~
-
-You either have ``root`` access to your host development machine or you do
-not. Some users are given hardware that is centrally managed. If you do not
-have ``root`` access you can create your work environment in your home
-directory. You could use a prefix of :file:`$HOME/development/rtems` or
-:file:`$HOME/rtems`. Note, the ``$HOME`` environment variable can be
-substituted with ``~``.
-
-RTEMS Tools and packages do not require ``root`` access
-to be built and we encourage you to not build the tools as ``root``. If you
-need to control write access then it is best to manage this with groups
-assigned to users.
-
-If you have ``root`` access you can decide to install the tools under any
-suitable prefix. This may depend on the hardware in your host development
-machine. If the machine is a centralised build server the prefix may be used to
-separate production versions from the test versions and as just discussed the
-prefix paths may have restricted access rights to only those who manage and
-have configuration control of the machine.
-
-Apple OS X
-----------
-
-Apple's OS X is fully supported. You need to download and install a recent
-version of the Apple developer application Xcode. Xocde is available in the App
-Store. Make sure you install the Command Line Tools add on available for
-download within Xcode and once installed open a Terminal shell and enter the
-command ``cc`` and accept the license agreement.
-
-The normal prefix when working on OS X as a user is under your home directory.
-Prefixes of :file:`$HOME/development/rtems` or :file:`$HOME/rtems` are
-suitable.
-
.. _microsoft-windows:
Microsoft Windows
------------------
+~~~~~~~~~~~~~~~~~
RTEMS supports Windows as a development host and the tools for most
architectures are available. The RTEMS Project relies on the GNU tools for
@@ -160,8 +43,8 @@ Building is known to work on `Windows 7 64bit Professional` and `Windows 10`.
.. _windows-path-length:
-Path Length
-~~~~~~~~~~~
+Windows Path Length
+^^^^^^^^^^^^^^^^^^^
Windows path length is limited and can cause problems when building the
tools. The standard Windows API has a ``MAX_PATH`` length of 260
@@ -178,7 +61,7 @@ smaller to build. This is indicated in :ref:`released-version`.
.. _msys2_parallel_builds:
Parallel Builds with Make
-~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^
The MSYS2 GNU ``make`` has problems when using the `jobs` option. The RSB
defaults to automatically using as many cores as the host machine has. To get a
@@ -186,7 +69,7 @@ successful build on Windows it is recommended you add the ``--jobs=none``
option to all RSB build set commands.
POSIX Support
-~~~~~~~~~~~~~
+^^^^^^^^^^^^^
Building the RTEMS compilers, debugger, the RTEMS kernel and a number of other
3rd party packages requires a POSIX environment. On Windows you can use Cygwin
@@ -204,7 +87,7 @@ distribution and that is a welcome feature on Windows. You get a powerful tool
to manage your development environment on Windows.
Python
-~~~~~~
+^^^^^^
We need Python to build the tools as the RSB is written in Python and we need
suitable Python libraries to link to GDB as RTEMS makes use of GDB's Python
@@ -214,11 +97,11 @@ make sure you have the correct type and version of Python installed.
We cannot use the Python executables created by the Python project (python.org)
as they are built by Microsoft's C (MSC) compiler. Linking the MSC Python
-libraries with the MinGW64 executables is not easy and MSYS provided us with a
+libraries with the MinGW64 executables is not easy and MSYS provides us with a
simple solution so we do not support linking MSC libraries.
-MSYS2 provides two types and versions of Python executables, MinGW and MSYS and
-Python version 2 and 3. For Windows we need the MinGW executable so we have
+MSYS2 provides two types and two versions of Python executables, MinGW and MSYS
+and Python version 2 and 3. For Windows we need the MinGW executable so we have
suitables libraries and we have to have Python version 2 because on Windows GDB
only builds with Python2.
@@ -227,8 +110,10 @@ Python2 package. The MSYS Python is version 3 and the RSB can support version 2
and 3 of Python and it helps handle some of the long paths building GCC can
generate.
+.. _microsoft-windows-installation:
+
Installing MSYS2
-~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^
MSYS2 is installed on a new machine using the MSYS2 installer found on
https://msys2.github.io/. Please select the ``x86_64`` variant for 64bit
@@ -267,8 +152,8 @@ The packages we require are:
.. note::
-The actual output provided may vary due to changes in the dependent packages or
-newer package versions.
+ The actual output provided may vary due to changes in the dependent packages
+ or newer package versions.
Install the packages using ``pacman``:
diff --git a/user/index.rst b/user/index.rst
index bec769f..868e187 100644
--- a/user/index.rst
+++ b/user/index.rst
@@ -1,5 +1,11 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+.. comment Headingd
+.. comment 1 ======
+.. comment 2 ------
+.. comment 3 ~~~~~~
+.. comment 4 ^^^^^^
+
.. highlight:: c
============================
@@ -14,12 +20,11 @@ Table of Contents
:numbered:
overview/index
+ ecosys/index
start/index
- config/index
-
- tools/index
- test/index
+ hosts/index
+ installation/index
architecture/index
bsp/index
diff --git a/user/start/windows.rst b/user/installation/developer.rst
index 9e41276..0db4a51 100644
--- a/user/start/windows.rst
+++ b/user/installation/developer.rst
@@ -3,10 +3,212 @@
.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
.. comment: All rights reserved.
-.. _microsoft-windows-installation:
+.. _developer:
+.. _development-version:
+.. _unstable:
-Microsoft Windows
------------------
+Developer (Unstable)
+--------------------
+.. index:: Git
+
+RTEMS provides open access to it's development processes. We call this the
+developer set up. The project encouages all users to inspect, review, comment
+and contribute to the code base. The processes described here are the same
+processes the core development team use when developing and maintaining RTEMS.
+
+.. warning::
+
+ The development version is not for use in production and it can break from
+ time to time.
+
+Please read :ref:`development-host` before continuing. The following procedure
+assumes you have installed and configured your host operating system. It also
+assumes you have installed any dependent packages needed when building the
+tools and the kernel.
+
+You need to select a location to build and install the RTEMS Tool chain and
+RTEMS. Make sure there is plenty of disk space and a fast disk is
+recommended. Our procedure will document building and installing the tools in a
+home directory called :file:`development/rtems`. Using a home directory means
+you can do this without needing to be root. You can also use
+:file:`/opt/rtems/build` if you have access to that path.
+
+The location used to install the tools and kernel is called the `prefix`. It is
+best to have a `prefix` for each different version of RTEMS you are using. If
+you are using RTEMS 4.11 in production it is not a good idea to install a
+development version of 4.12 over the top. A separate `prefix` for each version
+avoids this.
+
+The RTEMS tool chain changes less often than the RTEMS kernel. One method of
+working with development releases is to have a separate `prefix` for the RTEMS
+tools and a different one for the RTEMS kernel. You can then update each
+without interacting with the other. You can also have a number of RTEMS
+versions available to test with.
+
+.. sidebar:: *Downloading the source*
+
+ You need an internet connection to download the source. The downloaded source
+ is cached locally and the RSB checksums it. If you run a build again the
+ download output will be missing. Using the RSB from git will download the
+ source from the upstream project's home site and this could be `http`, `ftp`,
+ or `git`.
+
+.. _posix-host-tools-chain:
+.. _macos-host-tools-chain:
+
+POSIX and OS X Host Tools Chain
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This procedure will build a SPARC tool chain.
+
+Clone the RTEMS Source Builder (RSB) repository:
+
+.. code-block:: shell
+
+ $ cd
+ $ mkdir -p development/rtems
+ $ cd development/rtems
+ $ git clone git://git.rtems.org/rtems-source-builder.git rsb
+ Cloning into 'rsb'...
+ remote: Counting objects: 5837, done.
+ remote: Compressing objects: 100% (2304/2304), done.
+ remote: Total 5837 (delta 4014), reused 5056 (delta 3494)
+ Receiving objects: 100% (5837/5837), 2.48 MiB | 292.00 KiB/s, done.
+ Resolving deltas: 100% (4014/4014), done.
+ Checking connectivity... done.
+
+Check all the host packages you need are present. Current libraries are not
+checked and this includes checking for the python development libraries GDB
+requires:
+
+.. code-block:: shell
+
+ $ cd rsb
+ $ ./source-builder/sb-check
+ RTEMS Source Builder - Check, 4.12 (e645642255cc)
+ Environment is ok
+
+Build a tool chain for the SPARC architecure. We are using the SPARC
+architecture because GDB has a good simulator that lets us run and test the
+samples RTEMS builds by default. The current development version
+is `4.12` and is on master:
+
+.. code-block:: shell
+
+ $ cd rtems
+ $ ../source-builder/sb-set-builder \
+ --prefix=/usr/home/chris/development/rtems/4.12 4.12/rtems-sparc
+ RTEMS Source Builder - Set Builder, 4.12 (e645642255cc)
+ Build Set: 4.12/rtems-sparc
+ Build Set: 4.12/rtems-autotools.bset
+ Build Set: 4.12/rtems-autotools-internal.bset
+ config: tools/rtems-autoconf-2.69-1.cfg
+ package: autoconf-2.69-x86_64-linux-gnu-1
+ Creating source directory: sources
+ download: ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -> sources/autoconf-2.69.tar.gz
+ downloading: sources/autoconf-2.69.tar.gz - 1.8MB of 1.8MB (100%)
+ building: autoconf-2.69-x86_64-linux-gnu-1
+ config: tools/rtems-automake-1.12.6-1.cfg
+ package: automake-1.12.6-x86_64-linux-gnu-1
+ download: ftp://ftp.gnu.org/gnu/automake/automake-1.12.6.tar.gz -> sources/automake-1.12.6.tar.gz
+ downloading: sources/automake-1.12.6.tar.gz - 2.0MB of 2.0MB (100%)
+ Creating source directory: patches
+ download: https://git.rtems.org/rtems-tools/plain/tools/4.12/automake/automake-1.12.6-bugzilla.redhat.com-1239379.diff -> patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff
+ downloading: patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff - 408.0 bytes of 408.0 bytes (100%)
+ building: automake-1.12.6-x86_64-linux-gnu-1
+ cleaning: autoconf-2.69-x86_64-linux-gnu-1
+ cleaning: automake-1.12.6-x86_64-linux-gnu-1
+ Build Set: Time 0:00:17.465024
+ Build Set: 4.12/rtems-autotools-base.bset
+ config: tools/rtems-autoconf-2.69-1.cfg
+ package: autoconf-2.69-x86_64-linux-gnu-1
+ building: autoconf-2.69-x86_64-linux-gnu-1
+ reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-linux-gnu-1.txt
+ reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-linux-gnu-1.xml
+ config: tools/rtems-automake-1.12.6-1.cfg
+ package: automake-1.12.6-x86_64-linux-gnu-1
+ building: automake-1.12.6-x86_64-linux-gnu-1
+ reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-linux-gnu-1.txt
+ reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-linux-gnu-1.xml
+ installing: autoconf-2.69-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
+ installing: automake-1.12.6-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
+ cleaning: autoconf-2.69-x86_64-linux-gnu-1
+ cleaning: automake-1.12.6-x86_64-linux-gnu-1
+ Build Set: Time 0:00:05.358624
+ Build Set: Time 0:00:22.824422
+ config: devel/expat-2.1.0-1.cfg
+ package: expat-2.1.0-x86_64-linux-gnu-1
+ download: http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz -> sources/expat-2.1.0.tar.gz
+ redirect: http://internode.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
+ downloading: sources/expat-2.1.0.tar.gz - 549.4kB of 549.4kB (100%)
+ building: expat-2.1.0-x86_64-linux-gnu-1
+ reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-linux-gnu-1.txt
+ reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-linux-gnu-1.xml
+ config: tools/rtems-binutils-2.26-1.cfg
+ package: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1
+ download: ftp://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.bz2 -> sources/binutils-2.26.tar.bz2
+ downloading: sources/binutils-2.26.tar.bz2 - 24.4MB of 24.4MB (100%)
+ download: https://git.rtems.org/rtems-tools/plain/tools/4.12/binutils/binutils-2.26-rtems-aarch64-x86_64.patch -> patches/binutils-2.26-rtems-aarch64-x86_64.patch
+ downloading: patches/binutils-2.26-rtems-aarch64-x86_64.patch - 3.2kB of 3.2kB (100%)
+ building: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1
+ reporting: tools/rtems-binutils-2.26-1.cfg -> sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1.txt
+ reporting: tools/rtems-binutils-2.26-1.cfg -> sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1.xml
+ config: tools/rtems-gcc-6-20160228-newlib-2.3.0.20160226-1.cfg
+ package: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1
+ download: ftp://gcc.gnu.org/pub/gcc/snapshots/6-20160228/gcc-6-20160228.tar.bz2 -> sources/gcc-6-20160228.tar.bz2
+ downloading: sources/gcc-6-20160228.tar.bz2 - 90.8MB of 90.8MB (100%)
+ download: ftp://sourceware.org/pub/newlib/newlib-2.3.0.20160226.tar.gz -> sources/newlib-2.3.0.20160226.tar.gz
+ downloading: sources/newlib-2.3.0.20160226.tar.gz - 16.9MB of 16.9MB (100%)
+ download: http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2 ->
+ sources/mpfr-2.4.2.tar.bz2
+ downloading: sources/mpfr-2.4.2.tar.bz2 - 1.0MB of 1.0MB (100%)
+ download: http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz -> sources/mpc-0.8.1.tar.gz
+ downloading: sources/mpc-0.8.1.tar.gz - 532.2kB of 532.2kB (100%)
+ download: ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2 -> sources/gmp-4.3.2.tar.bz2
+ downloading: sources/gmp-4.3.2.tar.bz2 - 1.8MB of 1.8MB (100%)
+ building: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1
+ reporting: tools/rtems-gcc-6-20160228-newlib-2.3.0.20160226-1.cfg -> sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1.txt
+ reporting: tools/rtems-gcc-6-20160228-newlib-2.3.0.20160226-1.cfg -> sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1.xml
+ config: tools/rtems-gdb-7.9-1.cfg
+ package: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1
+ download: http://ftp.gnu.org/gnu/gdb/gdb-7.9.tar.xz -> sources/gdb-7.9.tar.xz
+ downloading: sources/gdb-7.9.tar.xz - 17.0MB of 17.0MB (100%)
+ download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-sim-arange-inline.diff -> patches/gdb-sim-arange-inline.diff
+ downloading: patches/gdb-sim-arange-inline.diff - 761.0 bytes of 761.0 bytes (100%)
+ download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-sim-cgen-inline.diff -> patches/gdb-sim-cgen-inline.diff
+ downloading: patches/gdb-sim-cgen-inline.diff - 706.0 bytes of 706.0 bytes (100%)
+ download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-7.9-aarch64-x86_64.patch -> patches/gdb-7.9-aarch64-x86_64.patch
+ downloading: patches/gdb-7.9-aarch64-x86_64.patch - 1.7kB of 1.7kB (100%)
+ building: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1
+ reporting: tools/rtems-gdb-7.9-1.cfg -> sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1.txt
+ reporting: tools/rtems-gdb-7.9-1.cfg -> sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1.xml
+ config: tools/rtems-tools-4.12-1.cfg
+ package: rtems-tools-HEAD-1
+ Creating source directory: sources/git
+ git: clone: git://git.rtems.org/rtems-tools.git -> sources/git/rtems-tools.git
+ git: reset: git://git.rtems.org/rtems-tools.git
+ git: fetch: git://git.rtems.org/rtems-tools.git -> sources/git/rtems-tools.git
+ git: checkout: git://git.rtems.org/rtems-tools.git => HEAD
+ git: pull: git://git.rtems.org/rtems-tools.git
+ building: rtems-tools-HEAD-1
+ reporting: tools/rtems-tools-4.12-1.cfg -> rtems-tools-HEAD-1.txt
+ reporting: tools/rtems-tools-4.12-1.cfg -> rtems-tools-HEAD-1.xml
+ installing: expat-2.1.0-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
+ installing: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
+ installing: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
+ installing: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
+ installing: rtems-tools-HEAD-1 -> /usr/home/chris/development/rtems/4.12
+ cleaning: expat-2.1.0-x86_64-linux-gnu-1
+ cleaning: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1
+ cleaning: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1
+ cleaning: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1
+ cleaning: rtems-tools-HEAD-1
+ Build Set: Time 0:31:09.754219
+
+.. _windows-tool-chain:
+
+Windows Host Tool Chain
+~~~~~~~~~~~~~~~~~~~~~~~
.. index:: Microsoft Windows Installation
This section details how you create an RTEMS development environment on
@@ -21,8 +223,8 @@ Please see :ref:`microsoft-windows` before continuing.
probably opened an MSYS2 32bit Shell. Close all 32bit Shell windows and open
the MSYS2 64bit Shell.
-RTEMS Tools
-~~~~~~~~~~~
+RTEMS Windows Tools
+^^^^^^^^^^^^^^^^^^^
Create a workspace for RTEMS using the following shell command:
@@ -202,8 +404,10 @@ tools is:
/c/opt/rtems/rsb/rtems
$
+.. _rtems-kernel-install:
+
Building the Kernel
-~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^
We can now build the RTEMS kernel using the RTEMS tools we have just
built. First we need to set the path to the tools:
@@ -466,12 +670,3 @@ Install the kernel to our prefix:
make[1]: Leaving directory '/c/opt/rtems/kernel/pc686'
/c/opt/rtems/kernel/pc686
$
-
-Building the LibBSD
-~~~~~~~~~~~~~~~~~~~
-
-The RTEMS BSD Library or libBSD as it is also known is a package of FreeBSD code
-ported to RTEMS. It provides a number of advantanced services including a
-networking stack.
-
-| This needs to move to a new section and be completed.
diff --git a/user/installation/index.rst b/user/installation/index.rst
new file mode 100644
index 0000000..357fb8a
--- /dev/null
+++ b/user/installation/index.rst
@@ -0,0 +1,47 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+.. _installation:
+
+Installation
+============
+.. index:: Installation
+
+This section details how to set up and install the RTEMS Ecosystem. You will
+create a set of tools and an RTEMS kernel for your selected Board Support
+Package (BSP).
+
+You will be asked to follow a few simple steps and when you have finished you
+will have a development environment set up you can use to build applications
+for RTEMS. You will have also created a development environment you and a team
+can adapt for a project of any size and complexity.
+
+.. index:: Tools
+
+RTEMS applications are developed using cross-development tools running on a
+development computer, more commonlly referred to as the host computer. These
+are typically your desktop machine or a special build server. All RTEMS tools
+and runtime libraries are built from source on your host machine. The RTEMS
+Project does not maintain binary builds of the tools. This may appear to be the
+opposite to what you normally experience with host operating systems, and it
+is, however this approach works well. RTEMS is not a host operating system and
+it is not a distrbution. Providing binary packages for every possible host
+operating system is too big a task for the RTEMS Project and it is not a good
+use of core developer time. Their time is better spent making RTEMS better and
+faster.
+
+The RTEMS Project base installation set ups the tools and the RTEMS kernel for
+the selected BSPs. The tools run on your host computer are used to compile,
+link, and format executables so they can run on your target hardware.
+
+The RTEMS Project supports two set ups, release and developer
+environments. Release installations create the tools and kernel in a single
+pass ready for you to use. The tools and kernel are stable and only bug fixes
+are added creating new dot point releases. The developer set up tracks the Git
+repositories for the tools and kernel.
+
+.. include:: prefixes-sandboxing.rst
+.. include:: releases.rst
+.. include:: developer.rst
diff --git a/user/start/basics.rst b/user/installation/prefixes-sandboxing.rst
index e1e9ce9..c797a1f 100644
--- a/user/start/basics.rst
+++ b/user/installation/prefixes-sandboxing.rst
@@ -6,7 +6,9 @@
.. _prefixes:
Prefixes
-========
+--------
+
+.. index:: Prefixes
You will see the term :ref:term:`prefix` referred to thoughout this
documentation and in a wide number of software packages you can download from
@@ -46,10 +48,10 @@ path for all RTEMS 4.11 releases of :file:`/opt/rtems/4.11`.
For Windows a typical **prefix** is :file:`C:\\opt\\rtems` and as an MSYS2 path
this is :file:`/c/opt/rtems`.
-.. _project_sandboxing:
+.. _project-sandboxing:
Project Sandboxing
-==================
+------------------
Project specific sandboxes let you have a number of projects running in
parallel with each project in its own sandbox. You simply have a
diff --git a/user/start/releases.rst b/user/installation/releases.rst
index 9f2ebb9..ec458f2 100644
--- a/user/start/releases.rst
+++ b/user/installation/releases.rst
@@ -5,8 +5,8 @@
.. _released-version:
-Released Version
-================
+Releases
+--------
.. index:: tarball
.. index:: release
@@ -14,21 +14,19 @@ RTEMS releases provide a stable version of the kernel for the supported
architectures. RTEMS maintaines the current and previous releases. Support for
older releases is provided using the RTEMS support channels.
-Please read :ref:`development-hosts` before continuing.
-
-The following procedure assumes you have installed and configured your host
-operating. It also assumes you have installed any dependent packages needed
-when building the tools and the kernel.
+Please read :ref:`development-host` before continuing. The following procedure
+assumes you have installed and configured your host operating. It also assumes
+you have installed any dependent packages needed when building the tools and
+the kernel.
You need to select a location to build and install the RTEMS Tool chain and
RTEMS. Make sure there is plenty of disk space and a fast disk is
recommended. Our procedure will document building and installing the tools in a
-home directory called :file:`/opt/rtems`. This path will require root
+base directory called :file:`/opt/rtems`. This path will require root
access. If you are working on a machine you do not have root access to you can
-use a home directory, :ref:`development-version` has more details about
-this. If building on Windows use :file:`/c/opt/rtems` to keep the top level
-paths as short as possible. :ref:`microsoft-windows-installation` provides more
-detail about path lengths on Windows.
+use a home directory, If building on Windows use :file:`/c/opt/rtems` to keep
+the top level paths as short as possible. :ref:`windows-path-length` provides
+more detail about path lengths on Windows.
The location used to install the tools and kernel is called the
`prefix`. :ref:`prefixes` explains prefixes and how to use them. It is best to
@@ -37,16 +35,16 @@ using RTEMS 4.11 in production it is **not** a good idea to install a
development version of 4.12 over the top by using the same `prefix` as the 4.11
build. A separate `prefix` for each version avoids this.
-Released versions of the RSB download all source code for all packages from the
-:r:url:`ftp` rather than from the package's home site. Hosting all the source
-on the :r:url:`ftp` ensures the source is present for the life of the
-release on the :r:url:`ftp`. If there is a problem accessing the RTEMS FTP
-the RSB will fall back to the packages home site.
+Released versions of the RTEMS Source Builder (RSB) downloads all source code
+for all packages from the :r:url:`ftp` rather than from the package's home
+site. Hosting all the source on the :r:url:`ftp` ensures the source is present
+for the life of the release on the :r:url:`ftp`. If there is a problem
+accessing the RTEMS FTP the RSB will fall back to the packages home site.
The :r:url:`ftp` is hosted at the Oregon State University's The Open Source Lab
(http://osuosl.org/). This is a nonprofit organization working for the
-advancement of open source technologies and RTEMS is very fortunate to hosted
-here. It has excellent internet access and performance.
+advancement of open source technologies and RTEMS is very fortunate to be
+shosted here. It has excellent internet access and performance.
.. note:: **Controlling the RTEMS Kernel Build**
@@ -59,8 +57,8 @@ here. It has excellent internet access and performance.
SPARC architecture you can supply ``--with-rtemsbsp="erc32 sis"``. This can
speed the build time up for some architectures that have a lot of BSPs.
-RTEMS Tools Chain
------------------
+RTEMS Tools and Kernel
+~~~~~~~~~~~~~~~~~~~~~~
This procedure will build a SPARC tool chain. Set up a suitable workspace to
build the release in. On Unix:
@@ -282,3 +280,5 @@ discussed in :ref:`msys2_parallel_builds`.
cleaning: rtems-tools-4.11.0-1
cleaning: sparc-rtems4.11-kernel-4.11.0-1
Build Set: Time 0:19:15.713662
+
+You can now build a 3rd party library or an application as defailted in TBD.
diff --git a/user/overview/index.rst b/user/overview/index.rst
index 137c734..a8cfc32 100644
--- a/user/overview/index.rst
+++ b/user/overview/index.rst
@@ -1,25 +1,24 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-
-.. _overview:
-
Overview
=========
Welcome to the :ref:term:`RTEMS` User Manual.
-This document covers all the topics required as a user of RTEMS to use the
-RTEMS operating system.
+This document covers the topics a user of RTEMS needs to be able to install,
+configure, build and create applications for the RTEMS operating system.
RTEMS, Real-Time Executive for Multiprocessor Systems, is a real-time executive
(kernel) which provides a high performance environment for embedded
-applications including the following features:
+applications with the following features:
.. sidebar:: Developers
Developers should look at the :r:url:`devel` for technical information. The
design and development of RTEMS is located there.
+- standards based user interfaces
+
- multitasking capabilities
- homogeneous and heterogeneous multiprocessor systems
@@ -38,6 +37,8 @@ applications including the following features:
- high level of user configurability
+- open source with a friendly user license
+
RTEMS provides features found in modern operating systems:
- file systems
@@ -48,8 +49,12 @@ RTEMS provides features found in modern operating systems:
- permanent media such as flash disks, cards and USB devices
+- support for various languages
+
+- parallel programming language support
+
Real-time Application Systems
-=============================
+-----------------------------
Real-time application systems are a special class of computer applications.
They have a complex set of characteristics that distinguish them from other
@@ -84,7 +89,7 @@ competing processors are introduced. The ramifications of multiple processors
complicate each and every characteristic of a real-time system.
Real-time Executive
-===================
+-------------------
Fortunately, real-time operating systems, or real-time executives, serve as a
cornerstone on which to build the application system. A real-time multitasking
@@ -122,18 +127,3 @@ routines to manage memory, pass messages, or provide mutual exclusion. The
developer is then able to concentrate solely on the application. By using
standard software components, the time and cost required to develop
sophisticated real-time applications is significantly reduced.
-
-Open Source
-===========
-
-RTEMS is an open source operating system and an open source project. As a user,
-you have access to all the source code. We encourage you to work with the
-source code and integrate the provided processes used to build tools, the
-kernel and any 3rd party libraries into your project's configuration management
-processes. The RTEMS project is always improving the way it develivers the
-kernel to you and so your feedback is important.
-
-What we used in the RTEMS project to develop and maintain RTEMS does not
-dictate what you use to develop and maintain your project. You can, and should,
-select the work-flow that best suites the demands of your project and what you
-are delivering.
diff --git a/user/start/development.rst b/user/start/development.rst
deleted file mode 100644
index fd60354..0000000
--- a/user/start/development.rst
+++ /dev/null
@@ -1,609 +0,0 @@
-.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-
-.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
-.. comment: All rights reserved.
-
-.. _development-version:
-
-Development Version
-===================
-.. index:: Git
-
-RTEMS provides open access to it's development processes. The project encouages
-all users to inspect, review, comment and contribute to the code base. The
-processes described here are the same processes the core development team use
-when developing and maintaining RTEMS.
-
-Please read :ref:`development-hosts` before continuing.
-
-.. warning::
-
- The development version is not for use in production and it can break from
- time to time.
-
-The following procedure assumes you have installed and configured your host
-operating system. It also assumes you have installed any dependent packages
-needed when building the tools and the kernel.
-
-You need to select a location to build and install the RTEMS Tool chain and
-RTEMS. Make sure there is plenty of disk space and a fast disk is
-recommended. Our procedure will document building and installing the tools in a
-home directory called :file:`development/rtems`. Using a home directory means
-you can do this without needing to be root. You can also use
-:file:`/opt/rtems/build` if you have access to that path.
-
-The location used to install the tools and kernel is called the `prefix`. It is
-best to have a `prefix` for each different version of RTEMS you are using. If
-you are using RTEMS 4.11 in production it is not a good idea to install a
-development version of 4.12 over the top. A separate `prefix` for each version
-avoids this.
-
-The RTEMS tool chain changes less often than the RTEMS kernel. One method of
-working with development releases is to have a separate `prefix` for the RTEMS
-tools and a different one for the RTEMS kernel. You can then update each
-without interacting with the other. You can also have a number of RTEMS
-versions available to test with.
-
-This procedure will build a SPARC tool chain.
-
-RTEMS Tools Chain
------------------
-
-Clone the RTEMS Source Builder (RSB) repository:
-
-.. code-block:: shell
-
- $ cd
- $ mkdir -p development/rtems
- $ cd development/rtems
- $ git clone git://git.rtems.org/rtems-source-builder.git rsb
- Cloning into 'rsb'...
- remote: Counting objects: 5837, done.
- remote: Compressing objects: 100% (2304/2304), done.
- remote: Total 5837 (delta 4014), reused 5056 (delta 3494)
- Receiving objects: 100% (5837/5837), 2.48 MiB | 292.00 KiB/s, done.
- Resolving deltas: 100% (4014/4014), done.
- Checking connectivity... done.
-
-.. sidebar:: *Downloading the source*
-
- You need an internet connection to download the source. The downloaded source
- is cached locally and the RSB checksums it. If you run a build again the
- download output will be missing. Using the RSB from git will download the
- source from the upstream project's home site and this could be `http`, `ftp`,
- or `git`.
-
-Check all the host packages you need are present. Current libraries are not
-checked and this includes checking for the python development libraries GDB
-requires:
-
-.. code-block:: shell
-
- $ cd rsb
- $ ./source-builder/sb-check
- RTEMS Source Builder - Check, 4.12 (e645642255cc)
- Environment is ok
-
-Build a tool chain for the SPARC architecure. We are using the SPARC
-architecture because GDB has a good simulator that lets us run and test the
-samples RTEMS builds by default. The current development version
-is `4.12` and is on master:
-
-.. code-block:: shell
-
- $ cd rtems
- $ ../source-builder/sb-set-builder \
- --prefix=/usr/home/chris/development/rtems/4.12 4.12/rtems-sparc
- RTEMS Source Builder - Set Builder, 4.12 (e645642255cc)
- Build Set: 4.12/rtems-sparc
- Build Set: 4.12/rtems-autotools.bset
- Build Set: 4.12/rtems-autotools-internal.bset
- config: tools/rtems-autoconf-2.69-1.cfg
- package: autoconf-2.69-x86_64-linux-gnu-1
- Creating source directory: sources
- download: ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz -> sources/autoconf-2.69.tar.gz
- downloading: sources/autoconf-2.69.tar.gz - 1.8MB of 1.8MB (100%)
- building: autoconf-2.69-x86_64-linux-gnu-1
- config: tools/rtems-automake-1.12.6-1.cfg
- package: automake-1.12.6-x86_64-linux-gnu-1
- download: ftp://ftp.gnu.org/gnu/automake/automake-1.12.6.tar.gz -> sources/automake-1.12.6.tar.gz
- downloading: sources/automake-1.12.6.tar.gz - 2.0MB of 2.0MB (100%)
- Creating source directory: patches
- download: https://git.rtems.org/rtems-tools/plain/tools/4.12/automake/automake-1.12.6-bugzilla.redhat.com-1239379.diff -> patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff
- downloading: patches/automake-1.12.6-bugzilla.redhat.com-1239379.diff - 408.0 bytes of 408.0 bytes (100%)
- building: automake-1.12.6-x86_64-linux-gnu-1
- cleaning: autoconf-2.69-x86_64-linux-gnu-1
- cleaning: automake-1.12.6-x86_64-linux-gnu-1
- Build Set: Time 0:00:17.465024
- Build Set: 4.12/rtems-autotools-base.bset
- config: tools/rtems-autoconf-2.69-1.cfg
- package: autoconf-2.69-x86_64-linux-gnu-1
- building: autoconf-2.69-x86_64-linux-gnu-1
- reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-autoconf-2.69-1.cfg -> autoconf-2.69-x86_64-linux-gnu-1.xml
- config: tools/rtems-automake-1.12.6-1.cfg
- package: automake-1.12.6-x86_64-linux-gnu-1
- building: automake-1.12.6-x86_64-linux-gnu-1
- reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-automake-1.12.6-1.cfg -> automake-1.12.6-x86_64-linux-gnu-1.xml
- installing: autoconf-2.69-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
- installing: automake-1.12.6-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
- cleaning: autoconf-2.69-x86_64-linux-gnu-1
- cleaning: automake-1.12.6-x86_64-linux-gnu-1
- Build Set: Time 0:00:05.358624
- Build Set: Time 0:00:22.824422
- config: devel/expat-2.1.0-1.cfg
- package: expat-2.1.0-x86_64-linux-gnu-1
- download: http://downloads.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz -> sources/expat-2.1.0.tar.gz
- redirect: http://internode.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
- downloading: sources/expat-2.1.0.tar.gz - 549.4kB of 549.4kB (100%)
- building: expat-2.1.0-x86_64-linux-gnu-1
- reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-linux-gnu-1.txt
- reporting: devel/expat-2.1.0-1.cfg -> expat-2.1.0-x86_64-linux-gnu-1.xml
- config: tools/rtems-binutils-2.26-1.cfg
- package: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1
- download: ftp://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.bz2 -> sources/binutils-2.26.tar.bz2
- downloading: sources/binutils-2.26.tar.bz2 - 24.4MB of 24.4MB (100%)
- download: https://git.rtems.org/rtems-tools/plain/tools/4.12/binutils/binutils-2.26-rtems-aarch64-x86_64.patch -> patches/binutils-2.26-rtems-aarch64-x86_64.patch
- downloading: patches/binutils-2.26-rtems-aarch64-x86_64.patch - 3.2kB of 3.2kB (100%)
- building: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1
- reporting: tools/rtems-binutils-2.26-1.cfg -> sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-binutils-2.26-1.cfg -> sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1.xml
- config: tools/rtems-gcc-6-20160228-newlib-2.3.0.20160226-1.cfg
- package: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1
- download: ftp://gcc.gnu.org/pub/gcc/snapshots/6-20160228/gcc-6-20160228.tar.bz2 -> sources/gcc-6-20160228.tar.bz2
- downloading: sources/gcc-6-20160228.tar.bz2 - 90.8MB of 90.8MB (100%)
- download: ftp://sourceware.org/pub/newlib/newlib-2.3.0.20160226.tar.gz -> sources/newlib-2.3.0.20160226.tar.gz
- downloading: sources/newlib-2.3.0.20160226.tar.gz - 16.9MB of 16.9MB (100%)
- download: http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2 ->
- sources/mpfr-2.4.2.tar.bz2
- downloading: sources/mpfr-2.4.2.tar.bz2 - 1.0MB of 1.0MB (100%)
- download: http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz -> sources/mpc-0.8.1.tar.gz
- downloading: sources/mpc-0.8.1.tar.gz - 532.2kB of 532.2kB (100%)
- download: ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2 -> sources/gmp-4.3.2.tar.bz2
- downloading: sources/gmp-4.3.2.tar.bz2 - 1.8MB of 1.8MB (100%)
- building: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1
- reporting: tools/rtems-gcc-6-20160228-newlib-2.3.0.20160226-1.cfg -> sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-gcc-6-20160228-newlib-2.3.0.20160226-1.cfg -> sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1.xml
- config: tools/rtems-gdb-7.9-1.cfg
- package: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1
- download: http://ftp.gnu.org/gnu/gdb/gdb-7.9.tar.xz -> sources/gdb-7.9.tar.xz
- downloading: sources/gdb-7.9.tar.xz - 17.0MB of 17.0MB (100%)
- download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-sim-arange-inline.diff -> patches/gdb-sim-arange-inline.diff
- downloading: patches/gdb-sim-arange-inline.diff - 761.0 bytes of 761.0 bytes (100%)
- download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-sim-cgen-inline.diff -> patches/gdb-sim-cgen-inline.diff
- downloading: patches/gdb-sim-cgen-inline.diff - 706.0 bytes of 706.0 bytes (100%)
- download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-7.9-aarch64-x86_64.patch -> patches/gdb-7.9-aarch64-x86_64.patch
- downloading: patches/gdb-7.9-aarch64-x86_64.patch - 1.7kB of 1.7kB (100%)
- building: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1
- reporting: tools/rtems-gdb-7.9-1.cfg -> sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1.txt
- reporting: tools/rtems-gdb-7.9-1.cfg -> sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1.xml
- config: tools/rtems-tools-4.12-1.cfg
- package: rtems-tools-HEAD-1
- Creating source directory: sources/git
- git: clone: git://git.rtems.org/rtems-tools.git -> sources/git/rtems-tools.git
- git: reset: git://git.rtems.org/rtems-tools.git
- git: fetch: git://git.rtems.org/rtems-tools.git -> sources/git/rtems-tools.git
- git: checkout: git://git.rtems.org/rtems-tools.git => HEAD
- git: pull: git://git.rtems.org/rtems-tools.git
- building: rtems-tools-HEAD-1
- reporting: tools/rtems-tools-4.12-1.cfg -> rtems-tools-HEAD-1.txt
- reporting: tools/rtems-tools-4.12-1.cfg -> rtems-tools-HEAD-1.xml
- installing: expat-2.1.0-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
- installing: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
- installing: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
- installing: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1 -> /usr/home/chris/development/rtems/4.12
- installing: rtems-tools-HEAD-1 -> /usr/home/chris/development/rtems/4.12
- cleaning: expat-2.1.0-x86_64-linux-gnu-1
- cleaning: sparc-rtems4.12-binutils-2.26-x86_64-linux-gnu-1
- cleaning: sparc-rtems4.12-gcc-6-20160228-newlib-2.3.0.20160226-x86_64-linux-gnu-1
- cleaning: sparc-rtems4.12-gdb-7.9-x86_64-linux-gnu-1
- cleaning: rtems-tools-HEAD-1
- Build Set: Time 0:31:09.754219
-
-RTEMS Kernel
-------------
-
-We need to set our path to include the RTEMS tools we built in the previous
-section. The RTEMS tools needs to be first in your path because RTEMS provides
-specific versions of the ``autoconf`` and ``automake`` tools. We want to use
-the RTEMS version and not your host's versions:
-
-
-.. code-block:: shell
-
- $ export PATH=$HOME/development/rtems/4.12/bin:$PATH
-
-Create a new location to build the RTEMS kernel:
-
-.. code-block:: shell
-
- $ cd
- $ cd development/rtems
- $ mkdir kernel
- $ cd kernel
-
-Clone the RTEMS respository:
-
-.. code-block:: shell
-
- $ git clone git://git.rtems.org/rtems.git rtems
- Cloning into 'rtems'...
- remote: Counting objects: 483342, done.
- remote: Compressing objects: 100% (88974/88974), done.
- remote: Total 483342 (delta 390053), reused 475669 (delta 383809)
- Receiving objects: 100% (483342/483342), 69.88 MiB | 1.37 MiB/s, done.
- Resolving deltas: 100% (390053/390053), done.
- Checking connectivity... done.
-
-The developers version of the code from git requires we ``bootstrap`` the
-source code. This is an ``autoconf`` and ``automake`` bootstrap to create the
-various files generated by ``autoconf`` and ``automake``. RTEMS does not keep
-these generated files under version control. The bootstrap process is slow so
-to speed it up the RSB provides a command that can perform the bootstrap in
-parallel using your available cores. We need to enter the cloned source
-directory then run the bootsrap commands:
-
-.. code-block:: shell
-
- $ cd rtems
- $ ./bootstrap -c && ./bootstrap -p && \
- $HOME/development/rtems/rsb/source-builder/sb-bootstrap
- removing automake generated Makefile.in files
- removing configure files
- removing aclocal.m4 files
- Generating ./cpukit/dtc/libfdt/preinstall.am
- Generating ./cpukit/zlib/preinstall.am
- Generating ./cpukit/libdl/preinstall.am
- Generating ./cpukit/posix/preinstall.am
- Generating ./cpukit/pppd/preinstall.am
- Generating ./cpukit/librpc/preinstall.am
- Generating ./cpukit/preinstall.am
- Generating ./cpukit/sapi/preinstall.am
- Generating ./cpukit/score/preinstall.am
- Generating ./cpukit/score/cpu/mips/preinstall.am
- Generating ./cpukit/score/cpu/sh/preinstall.am
- Generating ./cpukit/score/cpu/sparc/preinstall.am
- Generating ./cpukit/score/cpu/no_cpu/preinstall.am
- Generating ./cpukit/score/cpu/arm/preinstall.am
- Generating ./cpukit/score/cpu/m32c/preinstall.am
- Generating ./cpukit/score/cpu/moxie/preinstall.am
- Generating ./cpukit/score/cpu/v850/preinstall.am
- Generating ./cpukit/score/cpu/sparc64/preinstall.am
- Generating ./cpukit/score/cpu/or1k/preinstall.am
- Generating ./cpukit/score/cpu/i386/preinstall.am
- Generating ./cpukit/score/cpu/nios2/preinstall.am
- Generating ./cpukit/score/cpu/epiphany/preinstall.am
- Generating ./cpukit/score/cpu/m68k/preinstall.am
- Generating ./cpukit/score/cpu/lm32/preinstall.am
- Generating ./cpukit/score/cpu/powerpc/preinstall.am
- Generating ./cpukit/score/cpu/bfin/preinstall.am
- Generating ./cpukit/libpci/preinstall.am
- Generating ./cpukit/libcrypt/preinstall.am
- Generating ./cpukit/rtems/preinstall.am
- Generating ./cpukit/telnetd/preinstall.am
- Generating ./cpukit/libnetworking/preinstall.a
- ......
- Generating ./c/src/lib/libbsp/powerpc/gen5200/preinstall.am
- Generating ./c/src/lib/libbsp/powerpc/mpc55xxevb/preinstall.am
- Generating ./c/src/lib/libbsp/bfin/TLL6527M/preinstall.am
- Generating ./c/src/lib/libbsp/bfin/bf537Stamp/preinstall.am
- Generating ./c/src/lib/libbsp/bfin/eZKit533/preinstall.am
- Generating ./c/src/librtems++/preinstall.am
- Generating ./c/src/libchip/preinstall.am
- Generating ./c/src/wrapup/preinstall.am
- Generating ./c/src/ada/preinstall.am
- RTEMS Source Builder - RTEMS Bootstrap, 4.12 (e645642255cc modified)
- 1/139: autoreconf: configure.ac
- 2/139: autoreconf: cpukit/configure.ac
- 3/139: autoreconf: tools/cpu/configure.ac
- 4/139: autoreconf: tools/cpu/generic/configure.ac
- 5/139: autoreconf: tools/cpu/sh/configure.ac
- 6/139: autoreconf: tools/cpu/nios2/configure.ac
- 7/139: autoreconf: tools/build/configure.ac
- 8/139: autoreconf: doc/configure.ac
- ......
- 124/139: autoreconf: c/src/make/configure.ac
- 125/139: autoreconf: c/src/librtems++/configure.ac
- 126/139: autoreconf: c/src/ada-tests/configure.ac
- 127/139: autoreconf: testsuites/configure.ac
- 128/139: autoreconf: testsuites/libtests/configure.ac
- 129/139: autoreconf: testsuites/mptests/configure.ac
- 130/139: autoreconf: testsuites/fstests/configure.ac
- 131/139: autoreconf: testsuites/sptests/configure.ac
- 132/139: autoreconf: testsuites/tmtests/configure.ac
- 133/139: autoreconf: testsuites/smptests/configure.ac
- 134/139: autoreconf: testsuites/tools/configure.ac
- 135/139: autoreconf: testsuites/tools/generic/configure.ac
- 136/139: autoreconf: testsuites/psxtests/configure.ac
- 137/139: autoreconf: testsuites/psxtmtests/configure.ac
- 138/139: autoreconf: testsuites/rhealstone/configure.ac
- 139/139: autoreconf: testsuites/samples/configure.ac
- Bootstrap time: 0:02:47.398824
-
-We build RTEMS in a directory outside of the source tree we have just cloned
-and ``bootstrapped``. You cannot build RTEMS while in the source tree. Lets
-create a suitable directory using the name of the BSP we are going to build:
-
-.. code-block:: shell
-
- $ cd ..
- $ mkdir erc32
- $ cd erc32
-
-Configure RTEMS using the ``configure`` command. We use a full path to
-``configure`` so the object files built contain the absolute path of the source
-files. If you are source level debugging you will be able to access the source
-code to RTEMS from the debugger. We will build for the ``erc32`` BSP with POSIX
-enabled and the networking stack disabled:
-
-.. code-block:: shell
-
- $ $HOME/development/rtems/kernel/rtems/configure --prefix=$HOME/development/rtems/4.12 \
- --target=sparc-rtems4.12 --enable-rtemsbsp=erc32 --enable-posix \
- --disable-networking
- checking for gmake... no
- checking for make... make
- checking for RTEMS Version... 4.11.99.0
- checking build system type... x86_64-pc-linux-gnu
- checking host system type... x86_64-pc-linux-gnu
- checking target system type... sparc-unknown-rtems4.12
- checking for a BSD-compatible install... /usr/bin/install -c
- checking whether build environment is sane... yes
- checking for a thread-safe mkdir -p... /bin/mkdir -p
- checking for gawk... no
- checking for mawk... mawk
- checking whether make sets $(MAKE)... yes
- checking whether to enable maintainer-specific portions of Makefiles... no
- checking that generated files are newer than configure... done
- ......
- checking target system type... sparc-unknown-rtems4.12
- checking rtems target cpu... sparc
- checking for a BSD-compatible install... /usr/bin/install -c
- checking whether build environment is sane... yes
- checking for sparc-rtems4.12-strip... sparc-rtems4.12-strip
- checking for a thread-safe mkdir -p... /bin/mkdir -p
- checking for gawk... no
- checking for mawk... mawk
- checking whether make sets $(MAKE)... yes
- checking whether to enable maintainer-specific portions of Makefiles... no
- checking that generated files are newer than configure... done
- configure: creating ./config.status
- config.status: creating Makefile
-
- target architecture: sparc.
- available BSPs: erc32.
- 'make all' will build the following BSPs: erc32.
- other BSPs can be built with 'make RTEMS_BSP="bsp1 bsp2 ..."'
-
- config.status: creating Makefile
-
-Build RTEMS using two cores:
-
-.. code-block:: shell
-
- $ make -j 2
- Making all in tools/build
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make all-am
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT cklength.o -MD -MP -MF .deps/cklength.Tpo -c -o cklength.o /home/chris/development/rtems/kernel/rtems/tools/build/cklength.c
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT eolstrip.o -MD -MP -MF .deps/eolstrip.Tpo -c -o eolstrip.o /home/chris/development/rtems/kernel/rtems/tools/build/eolstrip.c
- mv -f .deps/cklength.Tpo .deps/cklength.Po
- mv -f .deps/eolstrip.Tpo .deps/eolstrip.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT compat.o -MD -MP -MF .deps/compat.Tpo -c -o compat.o /home/chris/development/rtems/kernel/rtems/tools/build/compat.c
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT packhex.o -MD -MP -MF .deps/packhex.Tpo -c -o packhex.o /home/chris/development/rtems/kernel/rtems/tools/build/packhex.c
- mv -f .deps/compat.Tpo .deps/compat.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT unhex.o -MD -MP -MF .deps/unhex.Tpo -c -o unhex.o /home/chris/development/rtems/kernel/rtems/tools/build/unhex.c
- mv -f .deps/packhex.Tpo .deps/packhex.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT rtems-bin2c.o -MD -MP -MF .deps/rtems-bin2c.Tpo -c -o rtems-bin2c.o /home/chris/development/rtems/kernel/rtems/tools/build/rtems-bin2c.c
- mv -f .deps/unhex.Tpo .deps/unhex.Po
- gcc -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/tools/build -g -O2 -MT binpatch.o -MD -MP -MF .deps/binpatch.Tpo -c -o binpatch.o /home/chris/development/rtems/kernel/rtems/tools/build/binpatch.c
- mv -f .deps/rtems-bin2c.Tpo .deps/rtems-bin2c.Po
- gcc -g -O2 -o cklength cklength.o
- mv -f .deps/binpatch.Tpo .deps/binpatch.Po
- gcc -g -O2 -o eolstrip eolstrip.o compat.o
- gcc -g -O2 -o packhex packhex.o
- gcc -g -O2 -o rtems-bin2c rtems-bin2c.o compat.o
- gcc -g -O2 -o unhex unhex.o compat.o
- gcc -g -O2 -o binpatch binpatch.o
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- Making all in tools/cpu
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- Making all in generic
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Nothing to be done for 'all'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[2]: Nothing to be done for 'all-am'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- Making all in testsuites/tools
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- Making all in generic
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools/generic'
- make[2]: Nothing to be done for 'all'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools/generic'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- make[2]: Nothing to be done for 'all-am'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/testsuites/tools'
- Making all in sparc-rtems4.12/c
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/c'
- Making all in .
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/c'
- Configuring RTEMS_BSP=erc32
- checking for gmake... no
- checking for make... make
- checking build system type... x86_64-pc-linux-gnu
- checking host system type... sparc-unknown-rtems4.12
- ......
- sparc-rtems4.12-gcc -B../../../../../erc32/lib/ -specs bsp_specs -qrtems -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs -I.. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/../support/include -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT init.o -MD -MP -MF .deps/init.Tpo -c -o init.o /home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs/init.c
- sparc-rtems4.12-gcc -B../../../../../erc32/lib/ -specs bsp_specs -qrtems -DHAVE_CONFIG_H -I. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs -I.. -I/home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/../support/include -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT empty.o -MD -MP -MF .deps/empty.Tpo -c -o empty.o /home/chris/development/rtems/kernel/rtems/c/src/../../testsuites/samples/nsecs/empty.c
- mv -f .deps/empty.Tpo .deps/empty.Po
- mv -f .deps/init.Tpo .deps/init.Po
- sparc-rtems4.12-gcc -B../../../../../erc32/lib/ -specs bsp_specs -qrtems -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -Wl,--gc-sections -mcpu=cypress -o nsecs.exe init.o empty.o
- sparc-rtems4.12-nm -g -n nsecs.exe > nsecs.num
- sparc-rtems4.12-size nsecs.exe
- text data bss dec hex filename
- 121392 1888 6624 129904 1fb70 nsecs.exe
- cp nsecs.exe nsecs.ralf
- make[6]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32/testsuites/samples/nsecs'
- make[5]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32/testsuites/samples'
- make[4]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32/testsuites/samples'
- make[4]: Entering directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32/testsuites'
- make[4]: Nothing to be done for 'all-am'.
- make[4]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32/testsuites'
- make[3]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32/testsuites'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/ c/erc32'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/c'
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32'
- make[1]: Nothing to be done for 'all-am'.
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32'
-
-All that remains to be done is to install the kernel. Installing RTEMS copies
-the API headers and architecture specific libraries to a locaiton under the
-`prefix` you provide. You can install any number of BSPs under the same
-`prefix`. We recommend you have a separate `prefix` for different versions of
-RTEMS. Do not mix versions of RTEMS under the same `prefix`. Make installs
-RTEMS with the following command:
-
-.. code-block:: shell
-
- $ make install
- Making install in tools/build
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- /bin/mkdir -p '/home/chris/development/rtems/4.12/bin'
- /usr/bin/install -c cklength eolstrip packhex unhex rtems-bin2c '/home/chris/development/rtems/4.12/bin'
- /bin/mkdir -p '/home/chris/development/rtems/4.12/bin'
- /usr/bin/install -c install-if-change '/home/chris/development/rtems/4.12/bin'
- make[2]: Nothing to be done for 'install-data-am'.
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/build'
- Making install in tools/cpu
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- Making install in generic
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[3]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[3]: Nothing to be done for 'install-exec-am'.
- make[3]: Nothing to be done for 'install-data-am'.
- make[3]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu/generic'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[3]: Entering directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[3]: Nothing to be done for 'install-exec-am'.
- make[3]: Nothing to be done for 'install-data-am'.
- make[3]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/tools/cpu
- ......
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32/sparc-rtems4.12/c'
- make[1]: Entering directory '/home/chris/development/rtems/kernel/erc32'
- make[2]: Entering directory '/home/chris/development/rtems/kernel/erc32'
- make[2]: Nothing to be done for 'install-exec-am'.
- /bin/mkdir -p '/home/chris/development/rtems/4.12/make'
- /usr/bin/install -c -m 644 /home/chris/development/rtems/kernel/rtems/make/main.cfg /home/chris/development/rtems/kernel/rtems/make/leaf.cfg '/home/chris/development/rtems/4.12/make'
- /bin/mkdir -p '/home/chris/development/rtems/4.12/share/rtems4.12/make/Templates'
- /usr/bin/install -c -m 644 /home/chris/development/rtems/kernel/rtems/make/Templates/Makefile.dir /home/chris/development/rtems/kernel/rtems/make/Templates/Makefile.leaf /home/chris/development/rtems/kernel/rtems/make/Templates/Makefile.lib '/home/chris/development/rtems/4.12/share/rtems4.12/make/Templates'
- /bin/mkdir -p '/home/chris/development/rtems/4.12/make/custom'
- /usr/bin/install -c -m 644 /home/chris/development/rtems/kernel/rtems/make/custom/default.cfg '/home/chris/development/rtems/4.12/make/custom'
- make[2]: Leaving directory '/home/chris/development/rtems/kernel/erc32'
- make[1]: Leaving directory '/home/chris/development/rtems/kernel/erc32'
-
-Contributing Patches
---------------------
-
-RTEMS welcomes fixes to bugs and new features. The RTEMS Project likes to have
-bugs fixed against a ticket created on our :r:url:`devel`. Please raise a
-ticket if you have a bug. Any changes that are made can be tracked against the
-ticket. If you want to add a new a feature please post a message to
-:r:list:`devel` describing what you would like to implement. The RTEMS
-maintainer will help decide if the feature is in the best interest of the
-project. Not everything is and the maintainers need to evalulate how much
-effort it is to maintain the feature. Once accepted into the source tree it
-becomes the responsibility of the maintainers to keep the feature updated and
-working.
-
-Changes to the source tree are tracked using git. If you have not made changes
-and enter the source tree and enter a git status command you will see nothing
-has changed:
-
-.. code-block:: shell
-
- $ cd ../rtems
- $ git status
- On branch master
- Your branch is up-to-date with 'origin/master'.
- nothing to commit, working directory clean
-
-We will make a change to the source code. In this example I change the help
-message to the RTEMS shell's ``halt`` command. Running the same git status
-command reports:
-
-.. code-block:: shell
-
- $ git status
- On branch master
- Your branch is up-to-date with 'origin/master'.
- Changes not staged for commit:
- (use "git add <file>..." to update what will be committed)
- (use "git checkout -- <file>..." to discard changes in working directory)
-
- modified: cpukit/libmisc/shell/main_halt.c
-
- no changes added to commit (use "git add" and/or "git commit -a")
-
-As an example I have a ticket open and the ticket number is 9876. I commit the
-change with the follow git command:
-
-.. code-block:: shell
-
- $ git commit cpukit/libmisc/shell/main_halt.c
-
-An editor is opened and I enter my commit message. The first line is a title
-and the following lines form a body. My message is:
-
-.. code-block:: shell
-
- shell: Add more help detail to the halt command.
-
- Closes #9876.
-
- # Please enter the commit message for your changes. Lines starting
- # with '#' will be ignored, and an empty message aborts the commit.
- # Explicit paths specified without -i or -o; assuming --only paths...
- #
- # Committer: Chris Johns <chrisj@rtems.org>
- #
- # On branch master
- # Your branch is up-to-date with 'origin/master'.
- #
- # Changes to be committed:
- # modified: cpukit/libmisc/shell/main_halt.c
-
-When you save and exit the editor git will report the commit's status:
-
-.. code-block:: shell
-
- $ git commit cpukit/libmisc/shell/main_halt.c
- [master 9f44dc9] shell: Add more help detail to the halt command.
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-You can either email the patch to :r:list:`devel` with the following git
-command, and it is `minus one` on the command line:
-
-.. code-block:: shell
-
- $ git send-email --to=devel@rtems.org -1
- <add output here>
-
-Or you can ask git to create a patch file using:
-
-.. code-block:: shell
-
- $ git format-patch -1
- 0001-shell-Add-more-help-detail-to-the-halt-command.patch
-
-This patch can be attached to a ticket.
diff --git a/user/start/index.rst b/user/start/index.rst
index d1b5d12..98fcf7b 100644
--- a/user/start/index.rst
+++ b/user/start/index.rst
@@ -3,17 +3,73 @@
.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
.. comment: All rights reserved.
-===============
-Getting Started
-===============
-
-RTEMS is an open source real-time operating system. As a user you have access
-to all the source code. This ``Getting Started`` section will show you how you
-build the RTEMS compiler tools, kernel and 3rd party libraries from source.
-
-.. include:: basics.rst
-.. include:: depend.rst
-.. include:: installation.rst
-.. include:: releases.rst
-.. include:: development.rst
-.. include:: windows.rst
+Quick Start
+============
+
+The following is a quick start guide that provides a basic set of commands to
+build the RTEMS Tools and Kernel. The quick start guide provides links to the
+detailed sections if any problems are encoutnered.
+
+The detailed procedure for installing RTEMS can be found in
+:ref:`installation`.
+
+The development host computer needs to be set up for this quick start procedure
+to complete successfully. :ref:`host-computer` details what is needed for the
+supported host operating systems. If Windows is being used it is recommended
+following the procedure in :ref:`microsoft-windows` first.
+
+Their are many ways and locations a suitable environment can be set up. A
+common factor that defines the final location of tools and projects is the
+place you have suitable storage. :ref:`prefixes` and :ref:`project-sandboxing`
+provide detailed examples of possible locations and set ups .
+
+This procedure installs a developer set up using the RTEMS Git repositories on
+a Unix (POSIX) or MacOS host. The output from the commands has been removed and
+replaced with ``...``.
+
+Create a workspace, download the RTEMS Source Builder (RSB) and build a tool
+chain (:ref:`posix-host-tools-chain`):
+
+.. code-block:: shell
+
+ $ cd
+ $ mkdir -p development/rtems
+ $ cd development/rtems
+ $ git clone git://git.rtems.org/rtems-source-builder.git rsb
+ ...
+ $ cd rsb
+ $ ./source-builder/sb-check
+ ...
+ $ cd rtems
+ $ ../source-builder/sb-set-builder \
+ --prefix=/usr/home/chris/development/rtems/4.12 4.12/rtems-sparc
+ ...
+
+Build the RTEMS Kernel (:ref:`rtems-kernel-install`) by cloning the repository,
+running the ``bootstrap`` procecure, building and finally installing the
+kernel:
+
+.. code-block:: shell
+
+ $ export PATH=$HOME/development/rtems/4.12/bin:$PATH
+ $ cd
+ $ cd development/rtems
+ $ mkdir kernel
+ $ cd kernel
+ $ git clone git://git.rtems.org/rtems.git rtems
+ ...
+ $ cd rtems
+ $ ./bootstrap -c && ./bootstrap -p && \
+ $HOME/development/rtems/rsb/source-builder/sb-bootstrap
+ ...
+ $ cd ..
+ $ mkdir erc32
+ $ cd erc32
+ $ $HOME/development/rtems/kernel/rtems/configure --prefix=$HOME/development/rtems/4.12 \
+ --target=sparc-rtems4.12 --enable-rtemsbsp=erc32 --enable-posix
+ ...
+ $ make -j 8
+ ...
+ $ make install
+
+You can now build a 3rd party library or an application.
diff --git a/user/start/quick.rst b/user/start/quick.rst
new file mode 100644
index 0000000..47597af
--- /dev/null
+++ b/user/start/quick.rst
@@ -0,0 +1,68 @@
+.. comment SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
+
+Quick Start Guide
+=================
+
+.. index:: Quick Start
+
+The following is a quick start guide that provides you with the basic commands
+you need to build the RTEMS Tools and Kernel.
+
+You need to have your development host set up and ready, the
+:ref:`development-host` covers what you need.
+
+This procedure does a development (unstable) build from Git for a POSIX
+host. You can refer to the specific section that cover the specific part of the
+process in detail if you have an issue. The output from the commands has been
+removed and replaced with ``...``.
+
+Create a workspace, download the RTEMS Source Builder (RSB) and build a tool
+chain (See :ref:`rtems-tools-chain`):
+
+.. code-block:: shell
+
+ $ cd
+ $ mkdir -p development/rtems
+ $ cd development/rtems
+ $ git clone git://git.rtems.org/rtems-source-builder.git rsb
+ ...
+ $ cd rsb
+ $ ./source-builder/sb-check
+ ...
+ $ cd rtems
+ $ ../source-builder/sb-set-builder \
+ --prefix=/usr/home/chris/development/rtems/4.12 4.12/rtems-sparc
+ ...
+
+Build the RTEMS Kernel (See :ref:`rtems-kernel`) by cloning the repository,
+running the ``bootstrap`` procecure, building and finally installing the
+kernel:
+
+.. code-block:: shell
+
+ $ export PATH=$HOME/development/rtems/4.12/bin:$PATH
+ $ cd
+ $ cd development/rtems
+ $ mkdir kernel
+ $ cd kernel
+ $ git clone git://git.rtems.org/rtems.git rtems
+ ...
+ $ cd rtems
+ $ ./bootstrap -c && ./bootstrap -p && \
+ $HOME/development/rtems/rsb/source-builder/sb-bootstrap
+ ...
+ $ cd ..
+ $ mkdir erc32
+ $ cd erc32
+ $ $HOME/development/rtems/kernel/rtems/configure --prefix=$HOME/development/rtems/4.12 \
+ --target=sparc-rtems4.12 --enable-rtemsbsp=erc32 --enable-posix \
+ --disable-networking
+ ...
+ $ make -j 8
+ ...
+ $ make install
+
+You can now build a 3rd party library like LibBSD or an application.
diff --git a/user/support/index.rst b/user/support/index.rst
index ef28b17..03a95df 100644
--- a/user/support/index.rst
+++ b/user/support/index.rst
@@ -1,8 +1,5 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-
-.. _support:
-
Support
=======
@@ -12,9 +9,8 @@ This chapter covers all options available to both users and developers. If you
believe this is a bug report please submit it to the bug tracker otherwise the
developers mailing list is the default location to send the report.
-
Bug Tracker
-===========
+-----------
The bug tracker can be found at the :r:url:`bugs`.
@@ -28,7 +24,7 @@ If you are unsure about your issue status submit a ticket and we will help you
sort it out.
Documentation
-=============
+-------------
The latest user documentation can always be found at the :r:url:`docs`.
@@ -36,7 +32,7 @@ The latest user documentation can always be found at the :r:url:`docs`.
.. _support-mailing-lists:
Mailing Lists
-=============
+-------------
We have several mailing lists for RTEMS users and developers.
@@ -61,7 +57,7 @@ We have several mailing lists for RTEMS users and developers.
IRC
-===
+---
RTEMS IRC is available on the Freenode network. See the `Freenode
<http://www.freenode.net/>`_ web site for details on connecting, selecting a
@@ -84,10 +80,26 @@ http://www.rtems.org/irclogs/. You can search the logs using Google by adding:
to your search terms.
Developers
-==========
+----------
Developers can find help and support on the mailing lists, see
:ref:`support-mailing-lists`.
Technical documents including design, :r:url:`gsoc`, :r:url:`socis` can be
found on the :r:url:`devel`.
+
+Support Services
+----------------
+
+The wider RTEMS community has developers and orgainizations who can provide
+commercial support services. These services range from training, implementing
+new features in RTEMS, helping establish a new project environment for a team,
+to application and system design. The RTEMS Project does not endorse or promote
+any provider of these services and we recommend you use a search engine to
+locate a suitable provider. If you are unsrue please contact a provider and see
+what is available.
+
+If you develop a new feature or you have someone do this for you we recommend
+you have the work submitted to the project and merged. Once accepted into the
+project the work will be maintained as part of the development process within
+the project and this is a benefit for.
diff --git a/user/tools/index.rst b/user/tools/index.rst
index f0c611d..3f32aa3 100644
--- a/user/tools/index.rst
+++ b/user/tools/index.rst
@@ -1,12 +1,12 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-=====
-Tools
-=====
+.. comment: Copyright (c) 2016 Chris Johns <chrisj@rtems.org>
+.. comment: All rights reserved.
-XXX: All about rtems config
-
-
-.. include:: build.rst
-.. include:: simulation.rst
+===========
+RTEMS Tools
+===========
+The RTEMS kernel is cross-compiled on host computers and linked to 3rd party
+packages and application code and run on target hardware. This section details
+how to build asuitable cross-compiler and how to use the tools.