This section describes the process of building binutils, gcc, and
newlib using RPM. RPM is a packaging format which can be used to
distribute binary files as well as to capture the procedure and
source code used to produce those binary files. Before
attempting to build any RPM from source, it is necessary to
ensure that all required source and patches are in the SOURCES
directory under the RPM root (probably /usr/src/redhat
or
/usr/local/src/redhat
) on your machine. This procedure
starts by installing the source RPMs as shown in the following
example:
rpm -U rtems-4.8-i386-rtems4.8-gdb-6.5-2.src.rpm
Because RTEMS tool RPMS are called "nosrc" to indicate that one or
more source files required to produce the RPMs are not present.
The RTEMS source GDB RPM does not include the large .tar.gz
or
.tgz
files for GDB. This is shared by all RTEMS RPMs
regardless of target CPU and there was no reason
to duplicate them. You will have to get the required source
archive files by hand and place them in the SOURCES
directory
before attempting to build. If you forget to do this, RPM is
smart -- it will tell you what is missing. To determine what is
included or referenced by a particular RPM, use a command like the
following:
$ rpm -q -l -p rtems-4.8-i386-rtems4.8-gdb-6.5-2.src.rpm gdb-6.5-rtems4.8-rtems-20060713.diff gdb-6.5.tar.gz i386-rtems4.8-gdb-6.5.spec
Notice that there is a patch file (the .diff
file), a source archive
file (the .tar.gz
), and a file describing the build procedure and
files produced (the .spec
file). The .spec
file is placed
in the SPECS
directory under the RPM root directory.
The following example illustrates the invocation of RPM to build a new, locally compiled, binutils binary RPM that matches the installed source RPM. This example assumes that all of the required source is installed.
cd <RPM_ROOT_DIRECTORY>/SPECS rpm -bb i386-rtems4.8-gdb-6.5.spec
If the build completes successfully, RPMS like the following will be generated in a build-host architecture specific subdirectory of the RPMS directory under the RPM root directory.
rtems-4.8-gdb-common-6.5-2.i386.rpm rtems-4.8-i386-rtems4.8-gdb-6.5-2.i386.rpm
NOTE: It may be necessary to remove the build tree in the
BUILD
directory under the RPM root directory.
Copyright © 1988-2004 OAR Corporation