summaryrefslogtreecommitdiffstats
path: root/user/rsb/cross-canadian-cross.rst
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-01-11 10:20:08 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-01-14 07:15:27 +0100
commit60ed99d2b0c01f46c3458f45c0d0cd9334b6c497 (patch)
treedd13781008149370e2e0b1b8610e17dc7ee39df7 /user/rsb/cross-canadian-cross.rst
parentuser: Remove unused file (diff)
downloadrtems-docs-60ed99d2b0c01f46c3458f45c0d0cd9334b6c497.tar.bz2
user: Add RSB content as a chapter
Remove the separate RSB manual.
Diffstat (limited to 'user/rsb/cross-canadian-cross.rst')
-rw-r--r--user/rsb/cross-canadian-cross.rst97
1 files changed, 97 insertions, 0 deletions
diff --git a/user/rsb/cross-canadian-cross.rst b/user/rsb/cross-canadian-cross.rst
new file mode 100644
index 0000000..9c157b3
--- /dev/null
+++ b/user/rsb/cross-canadian-cross.rst
@@ -0,0 +1,97 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2012, 2016 Chris Johns <chrisj@rtems.org>
+
+Cross and Canadian Cross Building
+=================================
+
+Cross building and Canadian Cross building is the process of building on one
+machine an executable that runs on another machine. An example is building a
+set of RTEMS tools on Linux to run on Windows. The RSB supports cross building
+and Canadian cross building.
+
+This sections details how to the RSB to cross and Canadian cross build.
+
+Cross Building
+--------------
+
+Cross building is where the _build_ machine and _host_ are different. The
+_build_ machine runs the RSB and the _host_ machine is where the output from
+the build runs. An example is building a package such as NTP for RTEMS on your
+development machine.
+
+To build the NTP package for RTEMS you enter the RSB command::
+
+ $ ../source-builder/sb-set-builder \
+ --log=log_ntp_arm.txt \
+ --prefix=$HOME/development/rtems/4.11 \ <1>
+ --host=arm-rtems4.11 \ <2>
+ --with-rtems-bsp=xilinx_zynq_zc706 \ <3>
+ 4.11/net/ntp
+
+.. topic:: Items:
+
+ 1. The tools and the RTEMS BSP are installed under the same prefix.
+
+ 2. The ``--host`` command is the RTEMS architecture and version.
+
+ 3. The BSP is built and installed in the prefix. The arhcitecture must match
+ the ``--host`` architecture.
+
+.. note: Installing Into Different Directories
+
+ If you install BSPs into a different path to the prefix use the
+ ``--with-tools`` option to specify the path to the tools. Do not add the
+ 'bin' directory at the end of the path.
+
+Canadian Cross Building
+-----------------------
+
+A Canadian cross builds are where the **build**, **host** and **target**
+machines all differ. For example building an RTEMS compiler for an ARM
+processor that runs on Windows is built using a Linux machine. The process is
+controlled by setting the build triplet to the host you are building, the host
+triplet to the host the tools will run on and the target to the RTEMS
+architecture you require. The tools needed by the RSB are:
+
+- Build host C and C++ compiler
+
+- Host C and C++ cross compiler
+
+The RTEMS Source Builder requires you provide the build host C and C++ compiler
+and the final host C and C++ cross-compiler. The RSB will build the build host
+RTEMS compiler and the final host RTEMS C and C++ compiler, the output of this
+process.
+
+The Host C and C++ compiler is a cross-compiler that builds executables for the
+host you want the tools for. You need to provide these tools. For Windows a
+number of Unix operating systems provide MinGW tool sets as packages.
+
+The RSB will build an RTEMS tool set for the build host. This is needed when
+building the final host's RTEMS compiler as it needs to build RTEMS runtime
+code such as *libc* on the build host.
+
+TIP: Make sure the host's cross-compiler tools are in your path before run the
+RSB build command.
+
+TIP: Canadian Cross built tools will not run on the machine being used to build
+them so you should provide the ``--bset-tar-files`` and ``--no-install``
+options. The option to not install the files lets you provide a prefix that
+does not exist or you cannot access.
+
+To perform a cross build add ``--host=`` to the command line. For example
+to build a MinGW tool set on FreeBSD for Windows add ``--host=mingw32``
+if the cross compiler is ``mingw32-gcc``::
+
+ $ ../source-builder/sb-set-builder --host=mingw32 \
+ --log=l-mingw32-4.11-sparc.txt \
+ --prefix=$HOME/development/rtems/4.11 \
+ 4.11/rtems-sparc
+
+If you are on a Linux Fedora build host with the MinGW packages installed the
+command line is::
+
+ $ ../source-builder/sb-set-builder --host=i686-w64-mingw32 \
+ --log=l-mingw32-4.11-sparc.txt \
+ --prefix=$HOME/development/rtems/4.11 \
+ 4.11/rtems-sparc