2.9. Build an RSB Package¶
This section describes how to build an RTEMS package using the RSB. Before we start to build a package with the RSB you need to complete these steps:
Return to here once you have completed these steps.
You have chosen an installation prefix, the BSP to build, the tool’s
architecure and prepared the source for the RSB in the previous sections. We
$HOME/quick-start/rtems/5 as the installation prefix, the
erc32 BSP and the SPARC architecture name of
sparc-rtems5, and unpacked
the RSB source in
You are now able to build BSP Packages or 3rd party libraries of code if you have built a BSP.
2.9.1. RTEMS Packages¶
RTEMS Packages are source packages the RSB build to run on RTEMS. An installed package is a set of header files and libraries. Your application include the packages header files to make calls to the package’s code and include the libraries in it’s linker options.
RTEMS packages can be part of the RTEMS Project or they can be external
packages from 3rd parties. RTEMS Project packages include the BSPs and BSD
Library package called
libbsd. External 3rd party packages include
networking such has
libcurl to graphics libraries.
Packages can depend on other packages and need to be build in the corret
order. For example the FreeBSD Library package depends on the BSP package and a
3rd party library such as
curl depends on the FreeBSD Library package. We
call this layering a vertical software stack.
RTEMS applications are cross-compiled and this adds complexity when building libraries of code. RTEMS Packages build with the RSB manage this complexity for you.
Package are libraries so they will not be linked into your application until you make calls to the the code and add the library to your application’s linker command line.
2.9.2. BSP Stack Build¶
A BSP stack build is a single command that uses the RSB to build a BSP software stack of:
- Tool suite
The packages built depend on the BSP and the default will build all packages for a BSP.
cd $HOME/quick-start/src/rsb/rtems ../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/5 \ --with-rtems-tests=yes 5/bsps/erc32
This command should output something like this:
RTEMS Source Builder - Set Builder, 5.1.0 Build Set: 5/bsps/erc32 Build Set: 5/rtems-sparc.bset Build Set: 5/rtems-autotools.bset Build Set: 5/rtems-autotools-internal.bset config: tools/rtems-autoconf-2.69-1.cfg package: autoconf-2.69-x86_64-freebsd12.1-1 building: autoconf-2.69-x86_64-freebsd12.1-1 sizes: autoconf-2.69-x86_64-freebsd12.1-1: 7.505MB (installed: 0.000B) ... building: protobuf-2.6.1-sparc-rtems5-1 sizes: protobuf-2.6.1-sparc-rtems5-1: 228.079MB (installed: 84.408MB) cleaning: protobuf-2.6.1-sparc-rtems5-1 reporting: net/protobuf-2.6.1-1.cfg -> protobuf-2.6.1-sparc-rtems5-1.txt reporting: net/protobuf-2.6.1-1.cfg -> protobuf-2.6.1-sparc-rtems5-1.xml staging: protobuf-2.6.1-sparc-rtems5-1 -> $HOME/quick-start/src/rsb/rtems/build/tmp/sb-500-staging cleaning: protobuf-2.6.1-sparc-rtems5-1 Build Set: Time 0:00:23.564992 Build Set: Time 0:02:27.380299 installing: 5/bsps/erc32 -> $HOME/quick-start/rtems/ clean staging: 5/bsps/erc32 Staging Size: 1.372GB Build Set: Time 0:24:17.83979
The RSB BSP build can be customised with following RSB command line options:
- Build the test suite. If
yesis provided all tests in the testsuite are build. If
nois provided no tests are built and if
samplesis provided only the sample executables are built, e.g.
- Build with SMP support. The BSP has to have SMP support or this option will fail with an error.
- Build the BSP with BSP specific options. This is an advanced option. Please
refer to the BSP specific details in the Board Support Packages
(BSPs) of this manual or the BSP source code in the RTEMS source
directory. To supply a list of options quote then list with
Only a limited number of BSPs have RSB support to build as a software stack. To see which BSPs are supported run this command:
cd $HOME/quick-start/src/rsb/rtems ../source-builder/sb-set-builder --list-bsets | grep bsps
2.9.3. Package Build¶
Packages are built using RSB build sets. A build set is a set of builds need to build a packages. The build steps can be dependencies a package has or it could be a stack of software to provide specific functionality, i.e. a build set can be a list of build sets. To view the avaliable build sets run this command:
cd $HOME/quick-start/src/rsb/rtems ../source-builder/sb-set-builder --list-bsets
RTEMS package naming is based on the naming FreeBSD uses in its ports collection.
This Quick Start Guide will build the BSD Library or
An RTEMS package is hosted on RTEMS so the tool suite name needs to be supplied
--host option, e.g.
--host=sparc-rtem5. The BSP needs to be
provided using the
--with-rtems-bsp=erc32. The commands to build
libbsd for the
erc32 BSP are:
cd $HOME/quick-start/src/rsb/rtems ../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/5 \ --host=sparc-rtems5 --with-rtems-bsp=erc32 5/rtems-libbsd
This command should output something like this:
RTEMS Source Builder - Set Builder, 5.1.0 Build Set: 5/rtems-libbsd config: tools/rtems-libbsd-5.cfg package: rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1 building: rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1 sizes: rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1: 1.199GB (installed: 116.541MB) cleaning: rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1 reporting: tools/rtems-libbsd-5.cfg -> rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1.txt reporting: tools/rtems-libbsd-5.cfg -> rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1.xml installing: rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1 -> $HOME/quick-start/rtems/5 cleaning: rtems-libbsd-v3cc039cdac77272a8e16b33ae5a53ccd89edf989-sparc-rtems5-1 Build Set: Time 0:00:51.898231
Not all packages will build or run with all BSPs. Please ask on the Users Mailing List if you have any issues.