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