README.compileopts revision 1.3
1	$NetBSD: README.compileopts,v 1.3 2014/03/16 15:31:03 pooka Exp $
2
3This file describes compile-time options for rump kernels.  Additionally,
4NetBSD build options will have an effect.  See src/share/mk/bsd.README
5for a desciption of NetBSD build options.
6
7Note: after changing an option, do a clean build.
8
9
10    RUMP_DIAGNOSTIC
11
12values:	yes|no
13defval:	yes
14effect:	Iff "yes", build with -DDIAGNOSTIC.
15
16
17    RUMP_DEBUG
18
19values:	defined / not defined
20effect:	Iff defined, build with -DDEBUG.
21
22
23    RUMP_LOCKDEBUG
24
25values:	defined / not defined
26effect:	Iff defined, build with -DLOCKDEBUG.
27
28
29    RUMP_KTRACE
30
31values:	yes|no
32defval:	yes
33effect:	Iff "yes", build with -DKTRACE.
34
35
36    RUMP_LOCKS_UP
37
38values: yes|no
39defval:	no
40effect: 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
47values: yes|no
48defval:	no
49effect: 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
57values:	yes|no
58defval:	yes
59effect:	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
66values: hypercall/__thread/register or <undefined>
67defval: <undefined>
68effect: 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
81The rest of the options described in this file are not intended to be
82set by users, but by the package building rump kernels.
83
84
85    RUMP_KERNEL_IS_LIBC
86
87values:	defined / not defined
88effect: 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
97values: no/GNU/sun
98defval: GNU
99effect: 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