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