ChorusOS 4.0 Production Guide

Chapter 1 Introduction

In the context of this guide, the term production denotes all operations that you need to perform in order to generate a bootable system image from the ChorusOS source code provided (the source delivery).

The ChorusOS operating system is composed of components that can be built separately. You have a choice of which components to build. Use the default profiles available in the source files you receive, or customize these files to produce your own operating system.

System Requirements

You must be running the SolarisTM operating environment or using a Windows NT system.

You must have at least 250 megabytes of free disk space to use the source package.

Utilities on Your Host System

In order to install and generate the ChorusOS operating system, your host system must provide the following utilities: awk, basename, cat, cc, chmod, cmp, cp, cut, echo, egrep, find, gzip, grep, head, ln, ls, make, m4, mkdir, mv, rm, sed, sh, sort, sum, tail, test, touch, tr, true, uname, uncompress and uniq. These utilities must be in a directory of your PATH. See "Your Source PATH" for further information on PATH.

On Windows NT hosts, these utilities are provided with the Windows Upgrade package which is part of your delivery.

The host file system must support:

Directories

The source files are installed in a default source directory that is separate from the work directory.

In this document:

Components and Tools

The range of components available within the ChorusOS operating system is organized in a hierarchy spanning from the NUCLEUS, at the lowest level, to the EXAMPLES, at the top level as shown in Table 1-1.

Table 1-1 Source components in a ChorusOS and their level

component 

level 

NUCLEUS  

nucleus level 

DRV DRV_F BSP  

board support package level 

OS IOM  

operating system level 

EXAMPLES  

applications level 

The ChorusOS product ensures compatibility between components built with the two development tools available, mkmk and imake. The modularity of the source code facilitates porting of the operating system. See the ChorusOS 4.0 Porting Guide for more information.

The mkmk and imake tools provide a mechanism which uses input files in order to create the Makefile appropriate to that directory. They:

Introduction to mkmk

Table 1-2 lists components built with the mkmk tool.

Table 1-2 Built with mkmk
 Component Description
 NUCLEUS  nucleus
 OS POSIX environment
 IOM I/O Manager

The mkmk tool is described in this document. It is used to build components at the nucleus and operating system levels (Table 1-2).

Introduction to imake

Table 1-3 lists components built with the imake tool.

Table 1-3 Components Built with imake
 Component Description
 DRV Drivers
 DRV_F Family specific drivers
 BSP Boot
 EXAMPLES Applications

For further information on the imake tool refer to Chapter 3, Building with imake of this guide, ChorusOS 4.0 Introduction and to the ChorusOSMkMf(1CC) man page.

Tools Provided with the ChorusOS System

Table 1-4 gives the list of utilities and production files provided with the ChorusOS system and used with either the mkmk or the imake development tool. Utilities that can be called directly by developers are described in more detail in the ChorusOS man pages (configure, ChorusOSMkMf, configurator and mkmerge). The files in this Table are located in the <bin_dir>/tools/host/bin directory.

Table 1-4 Host Tools Provided with the ChorusOS System
 Utility/File Description
configure the "configure" script
cpxml wrapper around cp, used to copy XML files
cproot copies files to the target file system
ChorusOSMkMfcreates Makefiles, using imake, for target binaries
HostMkMfcreates Makefiles, using imake, for host binaries
Makefile.bin interface of the tools component
makedepend  creates dependencies
configurator handles configuration of features and tunables
mkimage the create system image
mkmerge merges split trees into a merged tree
genEnv reads Makefiles and gives output with their variables
getExport  computes the list of object files to use when creating a link
m4 the GNU m4 preprocessor
mkctors  handles ctors/dtors and tunables during actor link
mkmakewrapper around make
mkmkcreates Makefiles
mkstubs  produces system call stubs
rpcgen  an RPC protocol compiler
chgetlayout  extracts image layout, for DebugServer
mksymfiles  ghs compiler only
getLayoutFile  ghs compiler only
concat  concatenates files
devsys.mk make rules to compile host tools

The imake files; Imake.rules, Imake.tmpl, Package.rules, Project.tmpl are discussed in ChorusOS 4.0 Introduction. Table 1-5 gives a description of these files.

Table 1-5 The imake files provided with the ChorusOS System
 File Description
imake/Imake.rules imake rules
imake/Imake32.rules  provides compatibility with r3.2 imake rules
imake/Imake.tmpl template Makefile, for imake
imake/Package.rules packaging rules, for imake
imake/Project.tmpl empty Project.tmpl

Each file in the tgt-make directory deals with make rules for compiling target binary files. Certain files are specific to the gcc compiler, others to the ghs compiler. Only common and gcc/powerpc specific files are described here. All files listed in Table 1-6 are located in <bin_dir>/tools/tgt-make directory:

Table 1-6 Target Rules for ChorusOS
 File Description
gcc-devsys.mkmake rules used by the imake environment
gcc-ld.ld linker script used to reduce the section number
gcc-variables.rf make variables, for the mkmk and imake environments
gcc-tgtdevsys.rfmake rules, for mkmk
variables.rf includes the compiler specific file about variables
tgtdevsys.rf includes the compiler specific file about rules
shared.rfcalls mkmake
mktgt.rf includes all targets rules
mkrules.rfcontains rules for the mkmk environment
mkrules.m4 m4 macros for .bf files
Makefile.mkimageMakefile used during image creation
Makefile.confMakefile used during configurable actor links
genLinkgeneric linker, calls genLink.conf and genLink.noconf
genLink.conf links configurable actors
genLink.noconf links non-configurable actors
mkdbginfo generates offsets and symbol information
host.conf defines the host type
powerpc/genOff create offset files
powerpc/genOff.awkawk file used by genOff
powerpc/act.ld linker script used for actors using dynamic libraries
powerpc/lib.ld linker script used to create dynamic libraries


Note -

None of the above files can be modified.