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