From 11c8430e5cafeac1c25abc9ba9ef33fd21dfcad3 Mon Sep 17 00:00:00 2001 From: bz Date: Tue, 30 Oct 2018 15:46:30 +0000 Subject: [PATCH] Introduce an EXPERIMENTAL option for both src.conf(5) and the kernel. In the last decade(s) we have seen both short term or long term projects committed to the tree which were considered or even marked "experimental". While out-of-tree development has become easier than it used to be in CVS times, there still is a need to have the code shipping with HEAD but not enabled by default. While people may think about VIMAGE as one of the recent larger, long term projects, early protocol implementations (before they are standardised) are others. (Free)BSD historically was one of the operating systems which would have running code at early stages and help develop and influence standardisation and the industry. Give developers an opportunity to be more pro-active for early adoption or running large scale code changes stumbling over each others but not the user's feet. I have not added the option to NOTES in order to avoid breaking supported option builds, which require constant compile testing. Discussed with: people in the corridor --- share/man/man5/src.conf.5 | 4 +++- share/mk/src.opts.mk | 1 + sys/conf/options | 1 + tools/build/options/WITH_EXPERIMENTAL | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 tools/build/options/WITH_EXPERIMENTAL diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 37fb5ef571c1..c62a6d605615 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd October 25, 2018 +.Dd October 30, 2018 .Dt SRC.CONF 5 .Os .Sh NAME @@ -659,6 +659,8 @@ An alternate bootstrap tool chain must be provided. .It Va WITHOUT_EXAMPLES Set to avoid installing examples to .Pa /usr/share/examples/ . +.It Va WITH_EXPERIMENTAL +Set to include experimental features in the build. .It Va WITH_EXTRA_TCP_STACKS Set to build extra TCP stack modules. .It Va WITHOUT_FDT diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 7091db36459f..10aa1e8986ac 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -197,6 +197,7 @@ __DEFAULT_NO_OPTIONS = \ BSD_GREP \ CLANG_EXTRAS \ DTRACE_TESTS \ + EXPERIMENTAL \ GNU_GREP_COMPAT \ HESIOD \ LIBSOFT \ diff --git a/sys/conf/options b/sys/conf/options index 2519d17411e7..9d86cbdfd663 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -95,6 +95,7 @@ _COMPAT_LINUX32 opt_compat.h # XXX: make sure opt_compat.h exists COMPILING_LINT opt_global.h CY_PCI_FASTINTR DEADLKRES opt_watchdog.h +EXPERIMENTAL opt_global.h EXT_RESOURCES opt_global.h DIRECTIO FILEMON opt_dontuse.h diff --git a/tools/build/options/WITH_EXPERIMENTAL b/tools/build/options/WITH_EXPERIMENTAL new file mode 100644 index 000000000000..677edb6a081a --- /dev/null +++ b/tools/build/options/WITH_EXPERIMENTAL @@ -0,0 +1,2 @@ +.\" $FreeBSD$ +Set to include experimental features in the build.