Annotation of src/sys/rump/README.compileopts, Revision 1.6
1.6 ! justin 1: $NetBSD: README.compileopts,v 1.5 2014/06/20 12:36:31 pooka Exp $
1.1 pooka 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:
1.2 pooka 7: Note: after changing an option, do a clean build.
8:
1.5 pooka 9: Global options:
10:
1.1 pooka 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 / not defined
22: effect: Iff defined, build with -DDEBUG.
23:
24:
25: RUMP_LOCKDEBUG
26:
27: values: defined / not defined
28: effect: Iff defined, build with -DLOCKDEBUG.
29:
30:
31: RUMP_KTRACE
32:
33: values: yes|no
34: defval: yes
35: effect: Iff "yes", build with -DKTRACE.
36:
37:
38: RUMP_LOCKS_UP
39:
40: values: yes|no
41: defval: no
42: effect: If "yes", build rump kernel with uniprocess-optimized locking.
43: An implication of this is that RUMP_NCPU==1 is required at
44: runtime. If "no", build with multiprocessor-capable locking.
45:
46:
47: RUMP_UNREAL_ALLOCATORS
48:
49: values: yes|no
50: defval: no
51: effect: If "yes", build version of kmem_alloc, pool and pool_cache
52: that directly relegate allocation to a hypercall. If "no",
53: build the regular NetBSD memory allocators which use
54: page-sized memory allocation hypercalls.
55:
56:
57: RUMP_VIRTIF
58:
59: values: yes|no
60: defval: yes
61: effect: Iff "yes", build the virt(4) network interface. Turning this
62: off may be necessary on systems that lack the necessary headers,
63: e.g. musl libc based Linux.
64:
65:
1.3 pooka 66: RUMP_CURLWP
67:
68: values: hypercall/__thread/register or <undefined>
69: defval: <undefined>
70: effect: Control how curlwp is obtained in a rump kernel. This is
71: a very frequently accessed thread-local variable, and optimizing
72: access has a significant performance impact. Note that all
73: options are not available on hosts/machine architectures.
74: <undefined> - use default implementation (currently "hypercall")
75: hypercall - use a hypercall to fetch the value
76: __thread - use the __thread feature to fetch value via TLS
77: register - use a dedicated register (implies -ffixed)
78:
79:
1.1 pooka 80: ================================================================================
81:
1.6 ! justin 82: Rumpuser options:
! 83:
! 84: RUMPUSER_THREADS
! 85:
! 86: values: pthread/none/fiber or <undefined>
! 87: defval: <undefined>
! 88: effect: Define the way threading is implemented in the rumpuser hypercall
! 89: implmentation.
! 90: <undefined> - use default implementation (currently "pthread")
! 91: pthread - use pthreads to implement threading
! 92: none - do not support kernel threads at all
! 93: fiber - user a fiber interface, cooperatively scheduled contexts
! 94:
! 95:
! 96: ================================================================================
! 97:
1.5 pooka 98: Per-component options:
99:
100: RUMP_SYM_NORENAME
101:
102: values: regexp matching symbol names
103: defval: <undefined>
104: effect: Causes matching symbols from the component to not be renamed
105: into the rump kernel symbol namespace (rumpns_). This option
106: can only be used in embedded environments where there is full
107: control over the platform's namespace. Conversely, this option
108: cannot be used in kernel components which are not meant to be
109: tied to a specific platform. Note: the value is processed by
110: make and must be appropriately escaped. example:
111: RUMP_SYM_NORENAME=HYPERVISOR_|block$$
112: will not rename "^HYPERVISOR_" or "^block$"
113:
114:
115: ================================================================================
116:
1.1 pooka 117:
118: The rest of the options described in this file are not intended to be
119: set by users, but by the package building rump kernels.
120:
121:
122: RUMP_KERNEL_IS_LIBC
123:
124: values: defined / not defined
125: effect: Iff defined, export normal system call symbols from libc.
126: For example, without this option rump_sys_open() is exported.
127: With this option, both open() and rump_sys_open() are exported.
128: This option is meant for building systems where a rump kernel
129: is the only operating system like component.
130:
131:
132: RUMP_LDSCRIPT
133:
1.4 pooka 134: values: no/GNU/sun/ctor
1.1 pooka 135: defval: GNU
136: effect: Select the linker script to be used for linking rump kernel shared
137: library components.
1.4 pooka 138: no - do not use a linker script
139: GNU - use a linker script for GNU ld 2.18 and later
140: sun - use a linker script for the Solaris linker
141: ctor - do not use a linker script, make the code
142: generate __attribute__((constructor))
CVSweb <webmaster@jp.NetBSD.org>