README.compileopts revision 1.4
11.4Spooka $NetBSD: README.compileopts,v 1.4 2014/04/23 23:25:45 pooka Exp $ 21.1Spooka 31.1SpookaThis file describes compile-time options for rump kernels. Additionally, 41.1SpookaNetBSD build options will have an effect. See src/share/mk/bsd.README 51.1Spookafor a desciption of NetBSD build options. 61.1Spooka 71.2SpookaNote: after changing an option, do a clean build. 81.2Spooka 91.1Spooka 101.1Spooka RUMP_DIAGNOSTIC 111.1Spooka 121.1Spookavalues: yes|no 131.1Spookadefval: yes 141.1Spookaeffect: Iff "yes", build with -DDIAGNOSTIC. 151.1Spooka 161.1Spooka 171.1Spooka RUMP_DEBUG 181.1Spooka 191.1Spookavalues: defined / not defined 201.1Spookaeffect: Iff defined, build with -DDEBUG. 211.1Spooka 221.1Spooka 231.1Spooka RUMP_LOCKDEBUG 241.1Spooka 251.1Spookavalues: defined / not defined 261.1Spookaeffect: Iff defined, build with -DLOCKDEBUG. 271.1Spooka 281.1Spooka 291.1Spooka RUMP_KTRACE 301.1Spooka 311.1Spookavalues: yes|no 321.1Spookadefval: yes 331.1Spookaeffect: Iff "yes", build with -DKTRACE. 341.1Spooka 351.1Spooka 361.1Spooka RUMP_LOCKS_UP 371.1Spooka 381.1Spookavalues: yes|no 391.1Spookadefval: no 401.1Spookaeffect: If "yes", build rump kernel with uniprocess-optimized locking. 411.1Spooka An implication of this is that RUMP_NCPU==1 is required at 421.1Spooka runtime. If "no", build with multiprocessor-capable locking. 431.1Spooka 441.1Spooka 451.1Spooka RUMP_UNREAL_ALLOCATORS 461.1Spooka 471.1Spookavalues: yes|no 481.1Spookadefval: no 491.1Spookaeffect: If "yes", build version of kmem_alloc, pool and pool_cache 501.1Spooka that directly relegate allocation to a hypercall. If "no", 511.1Spooka build the regular NetBSD memory allocators which use 521.1Spooka page-sized memory allocation hypercalls. 531.1Spooka 541.1Spooka 551.1Spooka RUMP_VIRTIF 561.1Spooka 571.1Spookavalues: yes|no 581.1Spookadefval: yes 591.1Spookaeffect: Iff "yes", build the virt(4) network interface. Turning this 601.1Spooka off may be necessary on systems that lack the necessary headers, 611.1Spooka e.g. musl libc based Linux. 621.1Spooka 631.1Spooka 641.3Spooka RUMP_CURLWP 651.3Spooka 661.3Spookavalues: hypercall/__thread/register or <undefined> 671.3Spookadefval: <undefined> 681.3Spookaeffect: Control how curlwp is obtained in a rump kernel. This is 691.3Spooka a very frequently accessed thread-local variable, and optimizing 701.3Spooka access has a significant performance impact. Note that all 711.3Spooka options are not available on hosts/machine architectures. 721.3Spooka <undefined> - use default implementation (currently "hypercall") 731.3Spooka hypercall - use a hypercall to fetch the value 741.3Spooka __thread - use the __thread feature to fetch value via TLS 751.3Spooka register - use a dedicated register (implies -ffixed) 761.3Spooka 771.3Spooka 781.1Spooka================================================================================ 791.1Spooka 801.1Spooka 811.1SpookaThe rest of the options described in this file are not intended to be 821.1Spookaset by users, but by the package building rump kernels. 831.1Spooka 841.1Spooka 851.1Spooka RUMP_KERNEL_IS_LIBC 861.1Spooka 871.1Spookavalues: defined / not defined 881.1Spookaeffect: Iff defined, export normal system call symbols from libc. 891.1Spooka For example, without this option rump_sys_open() is exported. 901.1Spooka With this option, both open() and rump_sys_open() are exported. 911.1Spooka This option is meant for building systems where a rump kernel 921.1Spooka is the only operating system like component. 931.1Spooka 941.1Spooka 951.1Spooka RUMP_LDSCRIPT 961.1Spooka 971.4Spookavalues: no/GNU/sun/ctor 981.1Spookadefval: GNU 991.1Spookaeffect: Select the linker script to be used for linking rump kernel shared 1001.1Spooka library components. 1011.4Spooka no - do not use a linker script 1021.4Spooka GNU - use a linker script for GNU ld 2.18 and later 1031.4Spooka sun - use a linker script for the Solaris linker 1041.4Spooka ctor - do not use a linker script, make the code 1051.4Spooka generate __attribute__((constructor)) 106