head 1.17; access; symbols netbsd-11-0-RC3:1.17 netbsd-11-0-RC2:1.17 netbsd-11-0-RC1:1.17 perseant-exfatfs-base-20250801:1.17 netbsd-11:1.17.0.8 netbsd-11-base:1.17 netbsd-10-1-RELEASE:1.16 perseant-exfatfs-base-20240630:1.17 perseant-exfatfs:1.17.0.6 perseant-exfatfs-base:1.17 netbsd-8-3-RELEASE:1.14 netbsd-9-4-RELEASE:1.14 netbsd-10-0-RELEASE:1.16 netbsd-10-0-RC6:1.16 netbsd-10-0-RC5:1.16 netbsd-10-0-RC4:1.16 netbsd-10-0-RC3:1.16 netbsd-10-0-RC2:1.16 thorpej-ifq:1.17.0.4 thorpej-ifq-base:1.17 thorpej-altq-separation:1.17.0.2 thorpej-altq-separation-base:1.17 netbsd-10-0-RC1:1.16 netbsd-10:1.16.0.4 netbsd-10-base:1.16 bouyer-sunxi-drm:1.16.0.2 bouyer-sunxi-drm-base:1.16 netbsd-9-3-RELEASE:1.14 thorpej-i2c-spi-conf2:1.14.0.44 thorpej-i2c-spi-conf2-base:1.14 thorpej-futex2:1.14.0.42 thorpej-futex2-base:1.14 thorpej-cfargs2:1.14.0.40 thorpej-cfargs2-base:1.14 cjep_sun2x-base1:1.14 cjep_sun2x:1.14.0.38 cjep_sun2x-base:1.14 cjep_staticlib_x-base1:1.14 netbsd-9-2-RELEASE:1.14 cjep_staticlib_x:1.14.0.36 cjep_staticlib_x-base:1.14 thorpej-i2c-spi-conf:1.14.0.34 thorpej-i2c-spi-conf-base:1.14 thorpej-cfargs:1.14.0.32 thorpej-cfargs-base:1.14 thorpej-futex:1.14.0.30 thorpej-futex-base:1.14 netbsd-9-1-RELEASE:1.14 bouyer-xenpvh-base2:1.14 phil-wifi-20200421:1.14 bouyer-xenpvh-base1:1.14 phil-wifi-20200411:1.14 bouyer-xenpvh:1.14.0.28 bouyer-xenpvh-base:1.14 is-mlppp:1.14.0.26 is-mlppp-base:1.14 phil-wifi-20200406:1.14 netbsd-8-2-RELEASE:1.14 ad-namecache-base3:1.14 netbsd-9-0-RELEASE:1.14 netbsd-9-0-RC2:1.14 ad-namecache-base2:1.14 ad-namecache-base1:1.14 ad-namecache:1.14.0.24 ad-namecache-base:1.14 netbsd-9-0-RC1:1.14 phil-wifi-20191119:1.14 netbsd-9:1.14.0.22 netbsd-9-base:1.14 phil-wifi-20190609:1.14 netbsd-8-1-RELEASE:1.14 netbsd-8-1-RC1:1.14 isaki-audio2:1.14.0.20 isaki-audio2-base:1.14 pgoyette-compat-merge-20190127:1.14 pgoyette-compat-20190127:1.14 pgoyette-compat-20190118:1.14 pgoyette-compat-1226:1.14 pgoyette-compat-1126:1.14 pgoyette-compat-1020:1.14 pgoyette-compat-0930:1.14 pgoyette-compat-0906:1.14 netbsd-7-2-RELEASE:1.6 pgoyette-compat-0728:1.14 netbsd-8-0-RELEASE:1.14 phil-wifi:1.14.0.18 phil-wifi-base:1.14 pgoyette-compat-0625:1.14 netbsd-8-0-RC2:1.14 pgoyette-compat-0521:1.14 pgoyette-compat-0502:1.14 pgoyette-compat-0422:1.14 netbsd-8-0-RC1:1.14 pgoyette-compat-0415:1.14 pgoyette-compat-0407:1.14 pgoyette-compat-0330:1.14 pgoyette-compat-0322:1.14 pgoyette-compat-0315:1.14 netbsd-7-1-2-RELEASE:1.6 pgoyette-compat:1.14.0.16 pgoyette-compat-base:1.14 netbsd-7-1-1-RELEASE:1.6 tls-maxphys-base-20171202:1.14 matt-nb8-mediatek:1.14.0.14 matt-nb8-mediatek-base:1.14 nick-nhusb-base-20170825:1.14 perseant-stdc-iso10646:1.14.0.12 perseant-stdc-iso10646-base:1.14 netbsd-8:1.14.0.10 netbsd-8-base:1.14 prg-localcount2-base3:1.14 prg-localcount2-base2:1.14 prg-localcount2-base1:1.14 prg-localcount2:1.14.0.8 prg-localcount2-base:1.14 pgoyette-localcount-20170426:1.14 bouyer-socketcan-base1:1.14 jdolecek-ncq:1.14.0.6 jdolecek-ncq-base:1.14 pgoyette-localcount-20170320:1.14 netbsd-7-1:1.6.0.12 netbsd-7-1-RELEASE:1.6 netbsd-7-1-RC2:1.6 nick-nhusb-base-20170204:1.14 netbsd-7-nhusb-base-20170116:1.6 bouyer-socketcan:1.14.0.4 bouyer-socketcan-base:1.14 pgoyette-localcount-20170107:1.14 netbsd-7-1-RC1:1.6 nick-nhusb-base-20161204:1.14 pgoyette-localcount-20161104:1.14 netbsd-7-0-2-RELEASE:1.6 nick-nhusb-base-20161004:1.14 localcount-20160914:1.14 netbsd-7-nhusb:1.6.0.10 netbsd-7-nhusb-base:1.6 pgoyette-localcount-20160806:1.14 pgoyette-localcount-20160726:1.14 pgoyette-localcount:1.14.0.2 pgoyette-localcount-base:1.14 nick-nhusb-base-20160907:1.14 nick-nhusb-base-20160529:1.14 netbsd-7-0-1-RELEASE:1.6 nick-nhusb-base-20160422:1.14 nick-nhusb-base-20160319:1.14 nick-nhusb-base-20151226:1.13 netbsd-7-0:1.6.0.8 netbsd-7-0-RELEASE:1.6 nick-nhusb-base-20150921:1.13 netbsd-7-0-RC3:1.6 netbsd-7-0-RC2:1.6 netbsd-7-0-RC1:1.6 nick-nhusb-base-20150606:1.11 nick-nhusb-base-20150406:1.6 nick-nhusb:1.6.0.6 nick-nhusb-base:1.6 tls-maxphys-base:1.6 tls-maxphys:1.6.0.4 netbsd-7:1.6.0.2 netbsd-7-base:1.6 yamt-pagecache:1.4.0.4 rmind-smpnet-base:1.4 rmind-smpnet:1.4.0.2 rmind-smpnet-nbase:1.4 yamt-pagecache-base9:1.4 tls-earlyentropy:1.3.0.2 tls-earlyentropy-base:1.6 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.3 riastradh-drm2-base3:1.3; locks; strict; comment @# @; 1.17 date 2023.07.05.16.40.34; author lukem; state Exp; branches; next 1.16; commitid Q0V9UY8bvsx0mDvE; 1.16 date 2022.07.09.20.11.00; author andvar; state Exp; branches; next 1.15; commitid U0MzNyUEk14P6gLD; 1.15 date 2022.05.03.08.34.00; author hannken; state Exp; branches; next 1.14; commitid fgoH3bjnEDBIpACD; 1.14 date 2016.01.25.00.24.23; author pooka; state Exp; branches; next 1.13; commitid YnPP0Z0SIqNojfSy; 1.13 date 2015.06.17.11.48.06; author pooka; state Exp; branches; next 1.12; commitid FPfGAJo3u3tEeMpy; 1.12 date 2015.06.17.11.46.33; author pooka; state Exp; branches; next 1.11; commitid Yy9HB1jxVzIZcMpy; 1.11 date 2015.06.03.14.40.11; author pooka; state Exp; branches; next 1.10; commitid RZkUUXWzOWIBDZny; 1.10 date 2015.06.03.10.49.14; author pooka; state Exp; branches; next 1.9; commitid JZJHZ4R4HJDbmYny; 1.9 date 2015.04.24.06.29.56; author pooka; state Exp; branches; next 1.8; commitid GDsYic6Xa2ZOcOiy; 1.8 date 2015.04.23.14.49.26; author pooka; state Exp; branches; next 1.7; commitid txQfQSfGFGXi0Jiy; 1.7 date 2015.04.23.14.39.03; author pooka; state Exp; branches; next 1.6; commitid tAL7eniT4j8DWIiy; 1.6 date 2014.07.11.20.26.31; author justin; state Exp; branches 1.6.4.1 1.6.6.1; next 1.5; commitid wKeX1KlJTXKp30Ix; 1.5 date 2014.06.20.12.36.31; author pooka; state Exp; branches; next 1.4; commitid YBBxnyfyjlmO8gFx; 1.4 date 2014.04.23.23.25.45; author pooka; state Exp; branches 1.4.2.1 1.4.4.1; next 1.3; commitid PweBQHb48Vc9zRxx; 1.3 date 2014.03.16.15.31.03; author pooka; state Exp; branches 1.3.2.1; next 1.2; commitid RYBpB7QMP3NSbWsx; 1.2 date 2014.03.16.14.47.47; author pooka; state Exp; branches; next 1.1; commitid 23PfbZ6AHMs6XVsx; 1.1 date 2014.03.16.14.33.22; author pooka; state Exp; branches; next ; commitid 1IsKJthHhggSRVsx; 1.6.4.1 date 2014.07.11.20.26.31; author tls; state dead; branches; next 1.6.4.2; commitid jTnpym9Qu0o4R1Nx; 1.6.4.2 date 2014.08.20.00.04.37; author tls; state Exp; branches; next 1.6.4.3; commitid jTnpym9Qu0o4R1Nx; 1.6.4.3 date 2017.12.03.11.39.06; author jdolecek; state Exp; branches; next ; commitid XcIYRZTAh1LmerhA; 1.6.6.1 date 2015.06.06.14.40.26; author skrll; state Exp; branches; next 1.6.6.2; commitid O6LVO5i6UulOvnoy; 1.6.6.2 date 2015.09.22.12.06.12; author skrll; state Exp; branches; next 1.6.6.3; commitid CpNWKp3ozVNTafCy; 1.6.6.3 date 2016.03.19.11.30.33; author skrll; state Exp; branches; next ; commitid 2PHKtPSg1vDV9fZy; 1.4.2.1 date 2014.04.23.23.25.45; author rmind; state dead; branches; next 1.4.2.2; commitid mL5ZYSzpqK6QS2Bx; 1.4.2.2 date 2014.05.18.17.46.14; author rmind; state Exp; branches; next ; commitid mL5ZYSzpqK6QS2Bx; 1.4.4.1 date 2014.04.23.23.25.45; author yamt; state dead; branches; next 1.4.4.2; commitid VUUXuyNWnt3AKwBx; 1.4.4.2 date 2014.05.22.11.41.11; author yamt; state Exp; branches; next ; commitid VUUXuyNWnt3AKwBx; 1.3.2.1 date 2014.08.10.06.56.49; author tls; state Exp; branches; next ; commitid SqReByPtwiDFCMLx; desc @@ 1.17 log @mk.conf(5): document rump variables Update mk.conf(5) with the rump variables from - lib/librumpuser/README.compileopts - sys/rump/README.compileopts Add cross-references back to mk.conf(5) in those files. Ensure that the Default: is listed last in a description, for consistency with the convention in this file. @ text @ $NetBSD: README.compileopts,v 1.16 2022/07/09 20:11:00 andvar Exp $ This file describes compile-time options for rump kernels. Additionally, NetBSD build options will have an effect; see mk.conf(5) and src/share/mk/bsd.README for a description of NetBSD build options. Note: after changing an option, do a clean build. Global options: RUMP_DIAGNOSTIC values: yes|no defval: yes effect: Iff "yes", build with -DDIAGNOSTIC. RUMP_DEBUG values: / defval: effect: Iff defined, build with -DDEBUG. RUMP_LOCKDEBUG values: / defval: effect: Iff defined, build with -DLOCKDEBUG. RUMP_VNODE_LOCKDEBUG values: / defval: effect: Iff defined, build with -DVNODE_LOCKDEBUG. RUMP_KTRACE values: yes|no defval: yes effect: Iff "yes", build with -DKTRACE. RUMP_LOCKS_UP values: yes|no defval: no effect: If "yes", build rump kernel with uniprocess-optimized locking. An implication of this is that RUMP_NCPU==1 is required at runtime. If "no", build with multiprocessor-capable locking. RUMP_VIRTIF values: yes|no defval: yes effect: Iff "yes", build the virt(4) network interface. Turning this off may be necessary on systems that lack the necessary headers, e.g. musl libc based Linux. RUMP_CURLWP values: hypercall/__thread/register or defval: effect: Control how curlwp is obtained in a rump kernel. This is a very frequently accessed thread-local variable, and optimizing access has a significant performance impact. Note that all options are not available on hosts/machine architectures. - use default implementation (currently "hypercall") hypercall - use a hypercall to fetch the value __thread - use the __thread feature to fetch value via TLS register - use a dedicated register (implies -ffixed) RUMP_NBCOMPAT values: comma-separated list of releases; e.g. "60,70"; or "all" or "default" or "none". Currently default == all (but might not be so in the future) defval: all effect: Builds NetBSD COMPAT_nn code for each of the elements in the list. This option is useful only when building rump kernels for NetBSD userspace, and an empty value may be supplied elsewhere. ================================================================================ Per-component options: RUMP_SYM_NORENAME values: regexp matching symbol names defval: effect: Causes matching symbols from the component to not be renamed into the rump kernel symbol namespace (rumpns_). This option can only be used in embedded environments where there is full control over the platform's namespace. Conversely, this option cannot be used in kernel components which are not meant to be tied to a specific platform. Note: the value is processed by make and must be appropriately escaped. example: RUMP_SYM_NORENAME=HYPERVISOR_|block$$ will not rename "^HYPERVISOR_" or "^block$" ================================================================================ The rest of the options described in this file are not intended to be set by users, but by the package building rump kernels. RUMP_KERNEL_IS_LIBC values: defined / not defined effect: Iff defined, export normal system call symbols from libc. For example, without this option rump_sys_open() is exported. With this option, both open() and rump_sys_open() are exported. This option is meant for building systems where a rump kernel is the only operating system like component. RUMP_LDSCRIPT values: no/GNU/sun/ctor defval: GNU effect: Select the linker script to be used for linking rump kernel shared library components. no - do not use a linker script GNU - use a linker script for GNU ld 2.18 and later sun - use a linker script for the Solaris linker ctor - do not use a linker script, make the code generate __attribute__((constructor)) @ 1.16 log @s/desciption/description/ @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.15 2022/05/03 08:34:00 hannken Exp $ d3 4 a6 3 This file describes compile-time options for rump kernels. Additionally, NetBSD build options will have an effect. See src/share/mk/bsd.README for a description of NetBSD build options. @ 1.15 log @Make option VNODE_LOCKDEBUG more functional. - Add "LOCKED=EXCL" option for vnode operations needing exclusive locked nodes. - As it is impossible to check for shared locks held by current thread avoid false assertions by testing for exclusive lock only in the "LOCKED=NO" case. - New option "RUMP_VNODE_LOCKDEBUG" enables VNODE_LOCKDEBUG for the rump kernel. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.14 2016/01/25 00:24:23 pooka Exp $ d5 1 a5 1 for a desciption of NetBSD build options. @ 1.14 log @Move librumpuser compile-time options into the librumpuser source directory. Those options apply only for the in-tree implementation. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.13 2015/06/17 11:48:06 pooka Exp $ d33 7 @ 1.13 log @note RUMP_{,LOCK}DEBUG default values @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.12 2015/06/17 11:46:33 pooka Exp $ a84 16 Rumpuser options: RUMPUSER_THREADS values: pthread/none/fiber or defval: effect: Define the way threading is implemented in the rumpuser hypercall implmentation. - use default implementation (currently "pthread") pthread - use pthreads to implement threading none - do not support kernel threads at all fiber - user a fiber interface, cooperatively scheduled contexts ================================================================================ @ 1.12 log @Remove unreal allocators, unconditionally use subr_{kmem,pool}. Will, with other work, allow to tighten the memory allocation hypercall specification to page-granularity allocations in the future. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.11 2015/06/03 14:40:11 pooka Exp $ d21 2 a22 1 values: defined / not defined d28 2 a29 1 values: defined / not defined @ 1.11 log @Add a "default" alias for RUMP_NBCOMPAT, in case "default" and "all" stop being the same thing in the future. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.10 2015/06/03 10:49:14 pooka Exp $ a46 10 RUMP_UNREAL_ALLOCATORS values: yes|no defval: no effect: If "yes", build version of kmem_alloc, pool and pool_cache that directly relegate allocation to a hypercall. If "no", build the regular NetBSD memory allocators which use page-sized memory allocation hypercalls. @ 1.10 log @Add "all" and "none" as acceptable RUMP_NBCOMPAT value aliases to undefined and empty, respectively. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.9 2015/04/24 06:29:56 pooka Exp $ d82 3 a84 1 values: comma-separated list of releases; e.g. "60,70"; or "all" or "none" @ 1.9 log @There are tests which rely on compat code continuing to be present, so default RUMP_NBCOMPAT to all releases. reported by gson @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.8 2015/04/23 14:49:26 pooka Exp $ d82 1 a82 1 values: comma-separated list of releases, e.g. 60,70 @ 1.8 log @Rename RUMP_COMPAT to RUMP_NBCOMBAT to better signify what the variable does. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.7 2015/04/23 14:39:03 pooka Exp $ d82 2 a83 2 values: either a comma-separated list of releases (e.g. 50,60), or "all" defval: two previous NetBSD releases; check Makefile.rump @ 1.7 log @For RUMP_COMPAT, accept "all" as an alias. Also accept a comma-separated list, since that's easier to pass through shells than a whitespace-separated list. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.6 2014/07/11 20:26:31 justin Exp $ d80 1 a80 1 RUMP_COMPAT d84 3 a86 3 effect: Builds COMPAT_nn code for each of the elements in the list. This is only useful when building rump kernels for NetBSD userspace. @ 1.6 log @Add a fiber based implementation of librumpuser in addition to the default pthreads based version. Discussed with pooka@@ @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.5 2014/06/20 12:36:31 pooka Exp $ d80 9 @ 1.6.6.1 log @Sync with HEAD @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.11 2015/06/03 14:40:11 pooka Exp $ a79 11 RUMP_NBCOMPAT values: comma-separated list of releases; e.g. "60,70"; or "all" or "default" or "none". Currently default == all (but might not be so in the future) defval: all effect: Builds NetBSD COMPAT_nn code for each of the elements in the list. This option is useful only when building rump kernels for NetBSD userspace, and an empty value may be supplied elsewhere. @ 1.6.6.2 log @Sync with HEAD @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.6.6.1 2015/06/06 14:40:26 skrll Exp $ d21 1 a21 2 values: / defval: d27 1 a27 2 values: / defval: d47 10 @ 1.6.6.3 log @Sync with HEAD @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.6.6.2 2015/09/22 12:06:12 skrll Exp $ d85 16 @ 1.6.4.1 log @file README.compileopts was added on branch tls-maxphys on 2014-08-20 00:04:37 +0000 @ text @d1 142 @ 1.6.4.2 log @Rebase to HEAD as of a few days ago. @ text @a0 142 $NetBSD$ This file describes compile-time options for rump kernels. Additionally, NetBSD build options will have an effect. See src/share/mk/bsd.README for a desciption of NetBSD build options. Note: after changing an option, do a clean build. Global options: RUMP_DIAGNOSTIC values: yes|no defval: yes effect: Iff "yes", build with -DDIAGNOSTIC. RUMP_DEBUG values: defined / not defined effect: Iff defined, build with -DDEBUG. RUMP_LOCKDEBUG values: defined / not defined effect: Iff defined, build with -DLOCKDEBUG. RUMP_KTRACE values: yes|no defval: yes effect: Iff "yes", build with -DKTRACE. RUMP_LOCKS_UP values: yes|no defval: no effect: If "yes", build rump kernel with uniprocess-optimized locking. An implication of this is that RUMP_NCPU==1 is required at runtime. If "no", build with multiprocessor-capable locking. RUMP_UNREAL_ALLOCATORS values: yes|no defval: no effect: If "yes", build version of kmem_alloc, pool and pool_cache that directly relegate allocation to a hypercall. If "no", build the regular NetBSD memory allocators which use page-sized memory allocation hypercalls. RUMP_VIRTIF values: yes|no defval: yes effect: Iff "yes", build the virt(4) network interface. Turning this off may be necessary on systems that lack the necessary headers, e.g. musl libc based Linux. RUMP_CURLWP values: hypercall/__thread/register or defval: effect: Control how curlwp is obtained in a rump kernel. This is a very frequently accessed thread-local variable, and optimizing access has a significant performance impact. Note that all options are not available on hosts/machine architectures. - use default implementation (currently "hypercall") hypercall - use a hypercall to fetch the value __thread - use the __thread feature to fetch value via TLS register - use a dedicated register (implies -ffixed) ================================================================================ Rumpuser options: RUMPUSER_THREADS values: pthread/none/fiber or defval: effect: Define the way threading is implemented in the rumpuser hypercall implmentation. - use default implementation (currently "pthread") pthread - use pthreads to implement threading none - do not support kernel threads at all fiber - user a fiber interface, cooperatively scheduled contexts ================================================================================ Per-component options: RUMP_SYM_NORENAME values: regexp matching symbol names defval: effect: Causes matching symbols from the component to not be renamed into the rump kernel symbol namespace (rumpns_). This option can only be used in embedded environments where there is full control over the platform's namespace. Conversely, this option cannot be used in kernel components which are not meant to be tied to a specific platform. Note: the value is processed by make and must be appropriately escaped. example: RUMP_SYM_NORENAME=HYPERVISOR_|block$$ will not rename "^HYPERVISOR_" or "^block$" ================================================================================ The rest of the options described in this file are not intended to be set by users, but by the package building rump kernels. RUMP_KERNEL_IS_LIBC values: defined / not defined effect: Iff defined, export normal system call symbols from libc. For example, without this option rump_sys_open() is exported. With this option, both open() and rump_sys_open() are exported. This option is meant for building systems where a rump kernel is the only operating system like component. RUMP_LDSCRIPT values: no/GNU/sun/ctor defval: GNU effect: Select the linker script to be used for linking rump kernel shared library components. no - do not use a linker script GNU - use a linker script for GNU ld 2.18 and later sun - use a linker script for the Solaris linker ctor - do not use a linker script, make the code generate __attribute__((constructor)) @ 1.6.4.3 log @update from HEAD @ text @d21 1 a21 2 values: / defval: d27 1 a27 2 values: / defval: d47 10 d80 3 a82 1 RUMP_NBCOMPAT d84 10 a93 7 values: comma-separated list of releases; e.g. "60,70"; or "all" or "default" or "none". Currently default == all (but might not be so in the future) defval: all effect: Builds NetBSD COMPAT_nn code for each of the elements in the list. This option is useful only when building rump kernels for NetBSD userspace, and an empty value may be supplied elsewhere. @ 1.5 log @document RUMP_SYM_NORENAME @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.4 2014/04/23 23:25:45 pooka Exp $ d82 16 @ 1.4 log @Add a RUMP_USE_CTOR compile-time switch. If defined, use __attribute__((constructor)) to determine which rump kernel components and kernel modules are linked into the rump kernel. If not defined (default), use the regular approach with link sets. This option is aimed to fix problems with toolchains where using link sets is not possible because the linker does not generate the requisite __start/__stop symbols for the link set sections (e.g. GNU gold, OS X, ...). @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.3 2014/03/16 15:31:03 pooka Exp $ d9 2 d82 19 @ 1.4.4.1 log @file README.compileopts was added on branch yamt-pagecache on 2014-05-22 11:41:11 +0000 @ text @d1 105 @ 1.4.4.2 log @sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") @ text @a0 105 $NetBSD$ This file describes compile-time options for rump kernels. Additionally, NetBSD build options will have an effect. See src/share/mk/bsd.README for a desciption of NetBSD build options. Note: after changing an option, do a clean build. RUMP_DIAGNOSTIC values: yes|no defval: yes effect: Iff "yes", build with -DDIAGNOSTIC. RUMP_DEBUG values: defined / not defined effect: Iff defined, build with -DDEBUG. RUMP_LOCKDEBUG values: defined / not defined effect: Iff defined, build with -DLOCKDEBUG. RUMP_KTRACE values: yes|no defval: yes effect: Iff "yes", build with -DKTRACE. RUMP_LOCKS_UP values: yes|no defval: no effect: If "yes", build rump kernel with uniprocess-optimized locking. An implication of this is that RUMP_NCPU==1 is required at runtime. If "no", build with multiprocessor-capable locking. RUMP_UNREAL_ALLOCATORS values: yes|no defval: no effect: If "yes", build version of kmem_alloc, pool and pool_cache that directly relegate allocation to a hypercall. If "no", build the regular NetBSD memory allocators which use page-sized memory allocation hypercalls. RUMP_VIRTIF values: yes|no defval: yes effect: Iff "yes", build the virt(4) network interface. Turning this off may be necessary on systems that lack the necessary headers, e.g. musl libc based Linux. RUMP_CURLWP values: hypercall/__thread/register or defval: effect: Control how curlwp is obtained in a rump kernel. This is a very frequently accessed thread-local variable, and optimizing access has a significant performance impact. Note that all options are not available on hosts/machine architectures. - use default implementation (currently "hypercall") hypercall - use a hypercall to fetch the value __thread - use the __thread feature to fetch value via TLS register - use a dedicated register (implies -ffixed) ================================================================================ The rest of the options described in this file are not intended to be set by users, but by the package building rump kernels. RUMP_KERNEL_IS_LIBC values: defined / not defined effect: Iff defined, export normal system call symbols from libc. For example, without this option rump_sys_open() is exported. With this option, both open() and rump_sys_open() are exported. This option is meant for building systems where a rump kernel is the only operating system like component. RUMP_LDSCRIPT values: no/GNU/sun/ctor defval: GNU effect: Select the linker script to be used for linking rump kernel shared library components. no - do not use a linker script GNU - use a linker script for GNU ld 2.18 and later sun - use a linker script for the Solaris linker ctor - do not use a linker script, make the code generate __attribute__((constructor)) @ 1.4.2.1 log @file README.compileopts was added on branch rmind-smpnet on 2014-05-18 17:46:14 +0000 @ text @d1 105 @ 1.4.2.2 log @sync with head @ text @a0 105 $NetBSD$ This file describes compile-time options for rump kernels. Additionally, NetBSD build options will have an effect. See src/share/mk/bsd.README for a desciption of NetBSD build options. Note: after changing an option, do a clean build. RUMP_DIAGNOSTIC values: yes|no defval: yes effect: Iff "yes", build with -DDIAGNOSTIC. RUMP_DEBUG values: defined / not defined effect: Iff defined, build with -DDEBUG. RUMP_LOCKDEBUG values: defined / not defined effect: Iff defined, build with -DLOCKDEBUG. RUMP_KTRACE values: yes|no defval: yes effect: Iff "yes", build with -DKTRACE. RUMP_LOCKS_UP values: yes|no defval: no effect: If "yes", build rump kernel with uniprocess-optimized locking. An implication of this is that RUMP_NCPU==1 is required at runtime. If "no", build with multiprocessor-capable locking. RUMP_UNREAL_ALLOCATORS values: yes|no defval: no effect: If "yes", build version of kmem_alloc, pool and pool_cache that directly relegate allocation to a hypercall. If "no", build the regular NetBSD memory allocators which use page-sized memory allocation hypercalls. RUMP_VIRTIF values: yes|no defval: yes effect: Iff "yes", build the virt(4) network interface. Turning this off may be necessary on systems that lack the necessary headers, e.g. musl libc based Linux. RUMP_CURLWP values: hypercall/__thread/register or defval: effect: Control how curlwp is obtained in a rump kernel. This is a very frequently accessed thread-local variable, and optimizing access has a significant performance impact. Note that all options are not available on hosts/machine architectures. - use default implementation (currently "hypercall") hypercall - use a hypercall to fetch the value __thread - use the __thread feature to fetch value via TLS register - use a dedicated register (implies -ffixed) ================================================================================ The rest of the options described in this file are not intended to be set by users, but by the package building rump kernels. RUMP_KERNEL_IS_LIBC values: defined / not defined effect: Iff defined, export normal system call symbols from libc. For example, without this option rump_sys_open() is exported. With this option, both open() and rump_sys_open() are exported. This option is meant for building systems where a rump kernel is the only operating system like component. RUMP_LDSCRIPT values: no/GNU/sun/ctor defval: GNU effect: Select the linker script to be used for linking rump kernel shared library components. no - do not use a linker script GNU - use a linker script for GNU ld 2.18 and later sun - use a linker script for the Solaris linker ctor - do not use a linker script, make the code generate __attribute__((constructor)) @ 1.3 log @Introduce RUMP_CURLWP compile option to select curlwp scheme. Default is still "hypercall". @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.2 2014/03/16 14:47:47 pooka Exp $ d97 1 a97 1 values: no/GNU/sun d101 5 a105 3 no - do not use a linker script GNU - use a linker script for GNU ld 2.18 and later sun - use a linker script for the Solaris linker @ 1.3.2.1 log @Rebase. @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.6 2014/07/11 20:26:31 justin Exp $ a8 2 Global options: a79 35 Rumpuser options: RUMPUSER_THREADS values: pthread/none/fiber or defval: effect: Define the way threading is implemented in the rumpuser hypercall implmentation. - use default implementation (currently "pthread") pthread - use pthreads to implement threading none - do not support kernel threads at all fiber - user a fiber interface, cooperatively scheduled contexts ================================================================================ Per-component options: RUMP_SYM_NORENAME values: regexp matching symbol names defval: effect: Causes matching symbols from the component to not be renamed into the rump kernel symbol namespace (rumpns_). This option can only be used in embedded environments where there is full control over the platform's namespace. Conversely, this option cannot be used in kernel components which are not meant to be tied to a specific platform. Note: the value is processed by make and must be appropriately escaped. example: RUMP_SYM_NORENAME=HYPERVISOR_|block$$ will not rename "^HYPERVISOR_" or "^block$" ================================================================================ d97 1 a97 1 values: no/GNU/sun/ctor d101 3 a103 5 no - do not use a linker script GNU - use a linker script for GNU ld 2.18 and later sun - use a linker script for the Solaris linker ctor - do not use a linker script, make the code generate __attribute__((constructor)) @ 1.2 log @note that it's a good idea to do a clean build if an option is changed @ text @d1 1 a1 1 $NetBSD: README.compileopts,v 1.1 2014/03/16 14:33:22 pooka Exp $ d64 14 @ 1.1 log @document compile-time options for rump kernels @ text @d1 1 a1 1 $NetBSD$ d7 2 @