6.1 Definitions of Terms

When building for multiple environments, we distinguish between the system and a mode:

System
specifies the system environment of the target machine including the running $\mu$-kernel. System itself splits up into three parts:

<SYSTEM> = <ARCH> "_"<CPU> [ "-"<L4API> ]

<ARCH> specifies the architecture of the target processor. <CPU> specifies a model of the processor in more detail. It can be used for certain optimizations. <L4API> specifies the binding of the $\mu$-kernel. See Table 4 for a list of currently defined architectures, CPU types and L4 APIs.

The L4API part is optional. If it is omitted, the target is assumed to be independent of a specific L4 binding. Each target can be compiled for multiple systems at the same time.

Mode
covers the target execution environment respectively the C-libraries binaries should be linked against. Examples are l4env, loader or host. See Section 6.5 for a list of suggestions. Each target can be built/compiled for only one mode.


Table 4: Valid values for the components of a system description. Defaults are underlined.
ARCH x86 arm amd64 ppc32
CPU 586, 686, K6, K7 sa, pxa, int k8 750
L4API l4v2, l4x2, l4secv2emu l4x0 l4v2, l4x2 l4x2


In contrast to the mode, the system is visible within the directory structure: The system of a (compiled/linked/built/installed) file is encoded in the directory part of the name of that file. For example, if a library is compiled for system x86_586-l4v2, its name is libfoo.a, it will be installed to $(L4DIR)/lib/x86_586/l4v2/libfoo.a. Another library libbar.a compiled for system x86_5861, it will be installed to $(L4DIR)/lib/x86_586/libbar.a. This is the case for includes and binaries analogically. So far for the installed files.

The compilation process must respect multiple systems too: We allow to build multiple systems at the same time from the same source-files. Therefore, the maintainer of a package specifies the possible systems2. In a global configuration file (maintained by the user that compiles its tree), all systems that should be compiled are specified.

L4 Checker 2012-04-11