OKL4 Build Options

This page provides a detailed listing of all command-line options available when building OKL4. For a general description of the build process, see BuildingAndSimulating.

General Build Options

Option

Description

Possible Values

Default

MACHINE

The machine/architecture for which to build OKL4

A valid machine name in tools/machines.py

None (required option)

PROJECT

The project to build

The name of a sub-directory inside the projects directory

None (required option)

BUILD_DIR

The sub-directory in which to build OKL4/OK Linux

Any (an existing directory will be overwritten)

build

TOOLCHAIN

The toolchain with which to build OKL4/OK Linux

A valid toolchain in arch/{arch}/tools/toolchains.py

default_toolchain attribute in your machines.py machine definition

RUN

The simulator (or hardware) to use to execute the image following a successful build

A valid key from dict attribute run_methods in your machines.py machine definition

default_method attribute in your machines.py machine definition

Debugging Options

Option

Description

Possible Values

Default

VERBOSE_STR

Controls the output of verbose build information from SCons

True or False

False

VERBOSE_INIT

Controls the output of verbose kernel initialisation information on boot

True or False

False

ENABLE_DEBUG

Enables or disables debugging for both the kernel and Iguana. This needs to be enabled for KDB, tracepoints, and tracebuffers to operate

True or False

True

DEBUG_TRACE

Sets Iguana debug output level

0 to 5 (0 being no output, 5 being highest)

0

KDB_COLOR_VT

Enables KDB to output in color mode

True or False

True

ASSERT_LEVEL

The level at which assertions are evaluated. The ASSERT macro requires a level argument - if the level for an assert is less than or equal to ASSERT_LEVEL, the assertion will be evaluated

Any integer value

3 if ENABLE_DEBUG, 5 otherwise

ENABLE_KMEM_TRACE

Allows tracing of kernel memory allocations via KDB

True or False

ENABLE_DEBUG

ENABLE_TRACEPOINTS

Enables the KDB Tracepoints feature

True or False

ENABLE_DEBUG

ENABLE_TRACEBUFFER

Enables the KDB Tracebuffer feature

True or False

ENABLE_DEBUG

TRACEBUFFER_PAGES

The number of pages to use for storage of Tracebuffer data

Any positive integer value

64

ENABLE_KDB_CONS

Enables KDB console support

True or False

ENABLE_DEBUG

ENABLE_KDB_CLI

Enables KDB command line support (interactive KDB)

True or False

ENABLE_DEBUG

KDB_BREAKIN

Enables breaking in to KDB using Ctrl-K or ESC

True or False

ENABLE_DEBUG && attribute kdb_breakin in machines.py definition

ENTER_KDB

Forces KDB to breakin upon startup, following kernel and root server initialisation

True or False

False

ENABLE_THREAD_NAMES

Enables the setting and printing of thread names

True or False

ENABLE_DEBUG

ENABLE_MUTEX_NAMES

Enables the setting and printing of mutex names

True or False

ENABLE_DEBUG

ENABLE_SPACE_NAMES

Enables the setting and printing of space names

True or False

False

Profiling Options

Option

Description

Possible Values

Default

ENABLE_PROFILING

Enables OKL4 Kernel Profiling via KDB

True or False

False

IGUANA_STATS

Allows Iguana to maintain various runtime statistics

True or False

False

Testing Options

Option

Description

Possible Values

Default

TEST_LIBS

Runs test suites provided with libraries

all, or the name of a library in libs

None

TESTING.TIMEOUT

Specifies a time limit, in seconds, for the running of a test suite

Any numeric value

30

TESTING.PRINT_LOG

Controls the printing of stdout output when running a test suite

True or False

False

OKL4 Kernel Options

Option

Description

Possible Values

Default

SCHEDULING_ALGORITHM

The scheduling algorithm to use. strict specifies that the scheduler should strictly obey priorities, with high priority threads always being selected to run over lower priority threads. inheritance specifies that priority inheritance should be used for threads in the system.

inheritance or strict

inheritance

MAX_SPACES

The maximum number of address spaces supported

Any positive integer value

256

MAX_THREADS

The maximum number of threads supported

>= 16 && <= 32768

1024

XIP

Enables OKL4 Kernel eXecution In Place

True or False

False

CONTEXT_BITMASKS

Enables the context bitmasks feature in the scheduler, which allows per-thread specification of the hardware execution units on which the thread may run

True or False

False

MUTEX_TYPE

Specifies the type of mutex primitive to expose via libmutex

user, kernel, hybrid

hybrid

ENABLE_FASTPATHS

Enables or disables the use of all fastpaths (both C and assembly)

True or False

True

EXCEPTION_FASTPATH

Enables or disables the use of assembly fastpaths for exceptions

True or False

True && asm_fastpath_supported

IPC_FASTPATH

Enables or disables the use of assembly fastpaths for IPC

True or False

True && asm_fastpath_supported

IPC_C_FASTPATH

Enables or disables the use of C fastpaths

True or False

!asm_fastpath_support && c_fastpath_supported

ROOT_CAP_NO

Maximum number of root cap entries

>= 16 && <= 32768

4096 on IA32, 1024 otherwise

DEFAULT_CACHE_ATTR_WB

Defines whether to use write through or write back cache by default (ARM only)

True or False

True on ARM, unused otherwise

DISABLE_L2_CACHE

Disables the use of L2 Cache (ARM only)

True or False

False on ARM, unused otherwise

Iguana Options

Option

Description

Possible Values

Default

EXAMPLE

An example application to build on top of Iguana

The name of a sub-directory inside iguana/example

None

EXAMPLE_ENV

The SCons environment in which to build the Iguana example application

iguana, which will build with the standard OKL4 libc, or posix, which will utilise a POSIX-enabled libc with a subset of PSE-51 support

iguana

INCLUDE_FILE

Provides the ability to embed a file into the resulting image which can then be read via the OKL4 FS library

The path to any file, relative to the OKL4 base directory

None

OKL4_FEATURE_PROFILE

Enables the use of a bundled set of OKL4 features (the EXTRA profile enables extended address spaces, zones, protected memory sections and remote memcopy)

NORMAL or EXTRA

Attribute default_feature_profile in machines.py, usually EXTRA

OK Linux Options

Option

Description

Possible Values

Default

OKLINUX_DIR

The directory path containing OK Linux, relative to OKL4 base directory

Any directory containing OK Linux

linux

LINUX_ROOTFS

The directory path containing a customised root filesystem for OK Linux

Any directory path

None

LINUX_ROOTFS_SIZE

Suggested file system image size for the customised root filesystem, in blocks

Any positive integer

None

LINUX_DEVFS

The path to a customised device description file

A file path

None

LINUX_APPS

The name, or an array of names, of applications to build with OK Linux

Must correspond to a directory name of an application in the OK Linux base directory

None

ENABLE_VDSO

Use OK Linux VDSO page (sysenter) to perform Linux syscalls on ia32

True or False

False

LTP_SET

If building LTP as a OK Linux app, allows the specification of the specific LTP test suite to use

set1, set2, set3, pthreads, signals, or all

all

BuildOptions (last edited 2008-08-11 02:34:29 by localhost)