README.compileopts revision 1.4
1 $NetBSD: README.compileopts,v 1.4 2014/04/23 23:25:45 pooka Exp $ 2 3This file describes compile-time options for rump kernels. Additionally, 4NetBSD build options will have an effect. See src/share/mk/bsd.README 5for a desciption of NetBSD build options. 6 7Note: after changing an option, do a clean build. 8 9 10 RUMP_DIAGNOSTIC 11 12values: yes|no 13defval: yes 14effect: Iff "yes", build with -DDIAGNOSTIC. 15 16 17 RUMP_DEBUG 18 19values: defined / not defined 20effect: Iff defined, build with -DDEBUG. 21 22 23 RUMP_LOCKDEBUG 24 25values: defined / not defined 26effect: Iff defined, build with -DLOCKDEBUG. 27 28 29 RUMP_KTRACE 30 31values: yes|no 32defval: yes 33effect: Iff "yes", build with -DKTRACE. 34 35 36 RUMP_LOCKS_UP 37 38values: yes|no 39defval: no 40effect: 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 47values: yes|no 48defval: no 49effect: 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 57values: yes|no 58defval: yes 59effect: 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 66values: hypercall/__thread/register or <undefined> 67defval: <undefined> 68effect: 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 81The rest of the options described in this file are not intended to be 82set by users, but by the package building rump kernels. 83 84 85 RUMP_KERNEL_IS_LIBC 86 87values: defined / not defined 88effect: 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 97values: no/GNU/sun/ctor 98defval: GNU 99effect: 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 ctor - do not use a linker script, make the code 105 generate __attribute__((constructor)) 106