Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7d4ec39 authored by Darren Hart (VMware)'s avatar Darren Hart (VMware) Committed by Jonathan Corbet
Browse files

Documentation/kbuild: Add guidance for the use of default

Document the preference [1] for new CONFIG options to "default n" (or
not use default at all) in order to minimizes changes to the config,
especially to avoid "make oldconfig" growing unnecessarily from release
to release.

Document the exceptions where it is acceptable to use "default y/m" for
new CONFIG options.

1. https://lkml.org/lkml/2017/11/18/257



Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michal Marek <mmarek@suse.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-kbuild@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Signed-off-by: default avatarDarren Hart (VMware) <dvhart@infradead.org>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent d063623b
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -77,6 +77,27 @@ applicable everywhere (see syntax).
  Optionally, dependencies only for this default value can be added with
  "if".

 The default value deliberately defaults to 'n' in order to avoid bloating the
 build. With few exceptions, new config options should not change this. The
 intent is for "make oldconfig" to add as little as possible to the config from
 release to release.

 Note:
	Things that merit "default y/m" include:

	a) A new Kconfig option for something that used to always be built
	   should be "default y".

	b) A new gatekeeping Kconfig option that hides/shows other Kconfig
	   options (but does not generate any code of its own), should be
	   "default y" so people will see those other options.

	c) Sub-driver behavior or similar options for a driver that is
	   "default n". This allows you to provide sane defaults.

	d) Hardware or infrastructure that everybody expects, such as CONFIG_NET
	   or CONFIG_BLOCK. These are rare exceptions.

- type definition + default value:
	"def_bool"/"def_tristate" <expr> ["if" <expr>]
  This is a shorthand notation for a type definition plus a value.