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