Update README.txt

The config portion of README.txt hasn't reflected reality for a while
now. With the change of how configuration options are generated, it's
even less reflective of reality. Update it to be a bit more useful.
This commit is contained in:
Laura Abbott 2016-12-20 10:01:24 -08:00
parent df505fba5d
commit dd50066e0b
1 changed files with 24 additions and 28 deletions

View File

@ -31,30 +31,29 @@ by make verrel
config heirarchy. config heirarchy.
----------------- -----------------
Instead of having to maintain a config file for every arch variant we build on, Instead of having to maintain a config file for every arch variant we build on,
the kernel spec uses a nested system of configs. At the top level, is the kernel spec uses a nested system of configs. Each option CONFIG_FOO is
config-generic. Add options here that should be present in every possible represented by a single file named CONFIG_FOO which contains the state (=y, =m,
config on all architectures. =n). These options are collected in the folder baseconfig. Architecture specifi
options are set in nested folders. An option set in a nested folder will
override the same option set in one of the higher levels.
Beneath this are per-arch overrides. For example config-x86-generic add The individual CONFIG_FOO files only exist in the pkg-git repository. The RPM
additional x86 specific options, and also _override_ any options that were contains kernel-foo.config files which are the result of combining all the
set in config-generic. CONFIG_FOO files. The files are combined by running build_configs.sh. This
script _must_ be run each time one of the options is changed.
The heirarchy looks like this.. Example flow:
config-generic # Enable the option CONFIG_ABC123 as a module for all arches
| echo "CONFIG_ABC123=m" > baseconfig/CONFIG_ABC1234
config-x86-generic # enable the option CONFIG_XYZ321 for only x86
| | echo "# CONFIG_XYZ321 is not set" > baseconfig/CONFIG_XYZ321
config-x86-32-generic config-x86-64-generic echo "CONFIG_XYZ321=m" > baseconfig/x86/CONFIG_XYZ321
# regenerate the combined config files
An option set in a lower level will override the same option set in one ./build_configs.sh
of the higher levels.
There exist two additional overrides, config-debug, and config-nodebug,
which override -generic, and the per-arch overrides. It is documented
further below.
The file config_generation gives a listing of what folders go into each
config file generated.
debug options. debug options.
-------------- --------------
@ -69,14 +68,11 @@ typically been run already, which sets up the following..
If we are building for rawhide, 'make debug' has been run, which changes If we are building for rawhide, 'make debug' has been run, which changes
the status quo to: the status quo to:
- We only build one kernel 'kernel' - We only build one kernel 'kernel'
- The debug options from 'config-debug' are always turned on. - The debug options are always turned on.
This is done to increase coverage testing, as not many people actually This is done to increase coverage testing, as not many people actually
run kernel-debug. run kernel-debug.
To add new debug options, add an option to _both_ config-debug and config-nodebug, The debug options are managed in a separate heierarchy under debugconfig. This
and also new stanzas to the Makefile 'debug' and 'release' targets. works in a similar manner to baseconfig. More deeply nested folders, again,
override options. The file config_generation gives a listing of what folders
Sometimes debug options get added to config-generic, or per-arch overrides go into each config file generated.
instead of config-[no]debug. In this instance, the options should have no
discernable performance impact, otherwise they belong in the debug files.