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