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