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