Home | History | Annotate | Line # | Download | only in rump
README.compileopts revision 1.3
      1 	$NetBSD: README.compileopts,v 1.3 2014/03/16 15:31:03 pooka Exp $
      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 
      7 Note: after changing an option, do a clean build.
      8 
      9 
     10     RUMP_DIAGNOSTIC
     11 
     12 values:	yes|no
     13 defval:	yes
     14 effect:	Iff "yes", build with -DDIAGNOSTIC.
     15 
     16 
     17     RUMP_DEBUG
     18 
     19 values:	defined / not defined
     20 effect:	Iff defined, build with -DDEBUG.
     21 
     22 
     23     RUMP_LOCKDEBUG
     24 
     25 values:	defined / not defined
     26 effect:	Iff defined, build with -DLOCKDEBUG.
     27 
     28 
     29     RUMP_KTRACE
     30 
     31 values:	yes|no
     32 defval:	yes
     33 effect:	Iff "yes", build with -DKTRACE.
     34 
     35 
     36     RUMP_LOCKS_UP
     37 
     38 values: yes|no
     39 defval:	no
     40 effect: If "yes", build rump kernel with uniprocess-optimized locking.
     41 	An implication of this is that RUMP_NCPU==1 is required at
     42 	runtime.  If "no", build with multiprocessor-capable locking.
     43 
     44 
     45     RUMP_UNREAL_ALLOCATORS
     46 
     47 values: yes|no
     48 defval:	no
     49 effect: If "yes", build version of kmem_alloc, pool and pool_cache
     50 	that directly relegate allocation to a hypercall.  If "no",
     51 	build the regular NetBSD memory allocators which use
     52 	page-sized memory allocation hypercalls.
     53 
     54 
     55     RUMP_VIRTIF
     56 
     57 values:	yes|no
     58 defval:	yes
     59 effect:	Iff "yes", build the virt(4) network interface.  Turning this
     60 	off may be necessary on systems that lack the necessary headers,
     61 	e.g. musl libc based Linux.
     62 
     63 
     64     RUMP_CURLWP
     65 
     66 values: hypercall/__thread/register or <undefined>
     67 defval: <undefined>
     68 effect: Control how curlwp is obtained in a rump kernel.  This is
     69 	a very frequently accessed thread-local variable, and optimizing
     70 	access has a significant performance impact.  Note that all
     71 	options are not available on hosts/machine architectures.
     72 	<undefined> - use default implementation (currently "hypercall")
     73 	hypercall   - use a hypercall to fetch the value
     74 	__thread    - use the __thread feature to fetch value via TLS
     75 	register    - use a dedicated register (implies -ffixed)
     76 
     77 
     78 ================================================================================
     79 
     80 
     81 The rest of the options described in this file are not intended to be
     82 set by users, but by the package building rump kernels.
     83 
     84 
     85     RUMP_KERNEL_IS_LIBC
     86 
     87 values:	defined / not defined
     88 effect: Iff defined, export normal system call symbols from libc.
     89 	For example, without this option rump_sys_open() is exported.
     90 	With this option, both open() and rump_sys_open() are exported.
     91 	This option is meant for building systems where a rump kernel
     92 	is the only operating system like component.
     93 
     94 
     95     RUMP_LDSCRIPT
     96 
     97 values: no/GNU/sun
     98 defval: GNU
     99 effect: Select the linker script to be used for linking rump kernel shared
    100 	library components.
    101 	no  - do not use a linker script
    102 	GNU - use a linker script for GNU ld 2.18 and later
    103 	sun - use a linker script for the Solaris linker
    104