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