[BACK]Return to README.compileopts CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / rump

Annotation of src/sys/rump/README.compileopts, Revision 1.6

1.6     ! justin      1:        $NetBSD: README.compileopts,v 1.5 2014/06/20 12:36:31 pooka Exp $
1.1       pooka       2:
                      3: This file describes compile-time options for rump kernels.  Additionally,
                      4: NetBSD build options will have an effect.  See src/share/mk/bsd.README
                      5: for a desciption of NetBSD build options.
                      6:
1.2       pooka       7: Note: after changing an option, do a clean build.
                      8:
1.5       pooka       9: Global options:
                     10:
1.1       pooka      11:
                     12:     RUMP_DIAGNOSTIC
                     13:
                     14: values:        yes|no
                     15: defval:        yes
                     16: effect:        Iff "yes", build with -DDIAGNOSTIC.
                     17:
                     18:
                     19:     RUMP_DEBUG
                     20:
                     21: values:        defined / not defined
                     22: effect:        Iff defined, build with -DDEBUG.
                     23:
                     24:
                     25:     RUMP_LOCKDEBUG
                     26:
                     27: values:        defined / not defined
                     28: effect:        Iff defined, build with -DLOCKDEBUG.
                     29:
                     30:
                     31:     RUMP_KTRACE
                     32:
                     33: values:        yes|no
                     34: defval:        yes
                     35: effect:        Iff "yes", build with -DKTRACE.
                     36:
                     37:
                     38:     RUMP_LOCKS_UP
                     39:
                     40: values: yes|no
                     41: defval:        no
                     42: effect: If "yes", build rump kernel with uniprocess-optimized locking.
                     43:        An implication of this is that RUMP_NCPU==1 is required at
                     44:        runtime.  If "no", build with multiprocessor-capable locking.
                     45:
                     46:
                     47:     RUMP_UNREAL_ALLOCATORS
                     48:
                     49: values: yes|no
                     50: defval:        no
                     51: effect: If "yes", build version of kmem_alloc, pool and pool_cache
                     52:        that directly relegate allocation to a hypercall.  If "no",
                     53:        build the regular NetBSD memory allocators which use
                     54:        page-sized memory allocation hypercalls.
                     55:
                     56:
                     57:     RUMP_VIRTIF
                     58:
                     59: values:        yes|no
                     60: defval:        yes
                     61: effect:        Iff "yes", build the virt(4) network interface.  Turning this
                     62:        off may be necessary on systems that lack the necessary headers,
                     63:        e.g. musl libc based Linux.
                     64:
                     65:
1.3       pooka      66:     RUMP_CURLWP
                     67:
                     68: values: hypercall/__thread/register or <undefined>
                     69: defval: <undefined>
                     70: effect: Control how curlwp is obtained in a rump kernel.  This is
                     71:        a very frequently accessed thread-local variable, and optimizing
                     72:        access has a significant performance impact.  Note that all
                     73:        options are not available on hosts/machine architectures.
                     74:        <undefined> - use default implementation (currently "hypercall")
                     75:        hypercall   - use a hypercall to fetch the value
                     76:        __thread    - use the __thread feature to fetch value via TLS
                     77:        register    - use a dedicated register (implies -ffixed)
                     78:
                     79:
1.1       pooka      80: ================================================================================
                     81:
1.6     ! justin     82: Rumpuser options:
        !            83:
        !            84:     RUMPUSER_THREADS
        !            85:
        !            86: values: pthread/none/fiber or <undefined>
        !            87: defval: <undefined>
        !            88: effect: Define the way threading is implemented in the rumpuser hypercall
        !            89:        implmentation.
        !            90:        <undefined> - use default implementation (currently "pthread")
        !            91:        pthread     - use pthreads to implement threading
        !            92:        none        - do not support kernel threads at all
        !            93:        fiber       - user a fiber interface, cooperatively scheduled contexts
        !            94:
        !            95:
        !            96: ================================================================================
        !            97:
1.5       pooka      98: Per-component options:
                     99:
                    100:     RUMP_SYM_NORENAME
                    101:
                    102: values: regexp matching symbol names
                    103: defval: <undefined>
                    104: effect: Causes matching symbols from the component to not be renamed
                    105:        into the rump kernel symbol namespace (rumpns_).  This option
                    106:        can only be used in embedded environments where there is full
                    107:        control over the platform's namespace.  Conversely, this option
                    108:        cannot be used in kernel components which are not meant to be
                    109:        tied to a specific platform.  Note: the value is processed by
                    110:        make and must be appropriately escaped.  example:
                    111:        RUMP_SYM_NORENAME=HYPERVISOR_|block$$
                    112:        will not rename "^HYPERVISOR_" or "^block$"
                    113:
                    114:
                    115: ================================================================================
                    116:
1.1       pooka     117:
                    118: The rest of the options described in this file are not intended to be
                    119: set by users, but by the package building rump kernels.
                    120:
                    121:
                    122:     RUMP_KERNEL_IS_LIBC
                    123:
                    124: values:        defined / not defined
                    125: effect: Iff defined, export normal system call symbols from libc.
                    126:        For example, without this option rump_sys_open() is exported.
                    127:        With this option, both open() and rump_sys_open() are exported.
                    128:        This option is meant for building systems where a rump kernel
                    129:        is the only operating system like component.
                    130:
                    131:
                    132:     RUMP_LDSCRIPT
                    133:
1.4       pooka     134: values: no/GNU/sun/ctor
1.1       pooka     135: defval: GNU
                    136: effect: Select the linker script to be used for linking rump kernel shared
                    137:        library components.
1.4       pooka     138:        no      - do not use a linker script
                    139:        GNU     - use a linker script for GNU ld 2.18 and later
                    140:        sun     - use a linker script for the Solaris linker
                    141:        ctor    - do not use a linker script, make the code
                    142:                  generate __attribute__((constructor))

CVSweb <webmaster@jp.NetBSD.org>