History

docs: kbuild: convert docs to ReST and rename to *.rst

The kbuild documentation clearly shows that the documents there are written at different times: some use markdown, some use their own peculiar logic to split sections. Convert everything to ReST without affecting too much the author's style and avoiding adding uneeded markups. The conversion is actually: - add blank lines and identation in order to identify paragraphs; - fix tables markups; - add some lists markups; - mark literal blocks; - adjust title markups. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings.

Mauro Carvalho Chehab committed 7 years ago

Commit cd238ef1 parent d7b461c48 files · +846 −567Browse files

Unified · Split

48 files
  1. Documentation/admin-guide/README.rst +1 −1
  2. Documentation/kbuild/headers_install.rst +3 −2
  3. Documentation/kbuild/index.rst +27 −0
  4. Documentation/kbuild/issues.rst +11 −0
  5. Documentation/kbuild/kbuild.rst +68 −51
  6. Documentation/kbuild/kconfig-language.rst +131 −111
  7. Documentation/kbuild/kconfig-macro-language.rst +21 −16
  8. Documentation/kbuild/kconfig.rst +82 −54
  9. Documentation/kbuild/makefiles.rst +335 −195
  10. Documentation/kbuild/modules.rst +100 −70
  11. Documentation/kernel-hacking/hacking.rst +2 −2
  12. Documentation/process/coding-style.rst +1 −1
  13. Documentation/process/submit-checklist.rst +1 −1
  14. Documentation/translations/it_IT/kernel-hacking/hacking.rst +2 −2
  15. Documentation/translations/it_IT/process/coding-style.rst +1 −1
  16. Documentation/translations/it_IT/process/submit-checklist.rst +1 −1
  17. Documentation/translations/zh_CN/process/coding-style.rst +1 −1
  18. Documentation/translations/zh_CN/process/submit-checklist.rst +1 −1
  19. Kconfig +1 −1
  20. arch/arc/plat-eznps/Kconfig +1 −1
  21. arch/c6x/Kconfig +1 −1
  22. arch/microblaze/Kconfig.debug +1 −1
  23. arch/microblaze/Kconfig.platform +1 −1
  24. arch/nds32/Kconfig +1 −1
  25. arch/openrisc/Kconfig +1 −1
  26. arch/powerpc/sysdev/Kconfig +1 −1
  27. arch/riscv/Kconfig +1 −1
  28. drivers/auxdisplay/Kconfig +1 −1
  29. drivers/firmware/Kconfig +1 −1
  30. drivers/mtd/devices/Kconfig +1 −1
  31. drivers/net/ethernet/smsc/Kconfig +3 −3
  32. drivers/net/wireless/intel/iwlegacy/Kconfig +2 −2
  33. drivers/net/wireless/intel/iwlwifi/Kconfig +1 −1
  34. drivers/parport/Kconfig +1 −1
  35. drivers/scsi/Kconfig +2 −2
  36. drivers/staging/sm750fb/Kconfig +1 −1
  37. drivers/usb/misc/Kconfig +2 −2
  38. drivers/video/fbdev/Kconfig +7 −7
  39. net/bridge/netfilter/Kconfig +1 −1
  40. net/ipv4/netfilter/Kconfig +1 −1
  41. net/ipv6/netfilter/Kconfig +1 −1
  42. net/netfilter/Kconfig +8 −8
  43. net/tipc/Kconfig +1 −1
  44. scripts/Kbuild.include +2 −2
  45. scripts/Makefile.host +1 −1
  46. scripts/kconfig/symbol.c +1 −1
  47. scripts/kconfig/tests/err_recursive_dep/expected_stderr +7 −7
  48. sound/oss/dmasound/Kconfig +3 −3
Documentation/admin-guide/README.rst+1−1
@@ -227,7 +227,7 @@ Configuring the kernel · 226 unmodified lines
227227 "make tinyconfig" Configure the tiniest possible kernel.
228228
229229 You can find more information on using the Linux kernel config tools
230− in Documentation/kbuild/kconfig.txt.
230+ in Documentation/kbuild/kconfig.rst.
231231
232232 - NOTES on ``make config``:
233233
Documentation/kbuild/headers_install.rstrenamed from Documentation/kbuild/headers_install.txt+3−2
@@ -1,3 +1,4 @@
1+=============================================
12 Exporting kernel headers for use by userspace
23 =============================================
34
@@ -22,14 +23,14 @@ older kernel. · 18 unmodified lines
2223
2324 The "make headers_install" command can be run in the top level directory of the
2425 kernel source code (or using a standard out-of-tree build). It takes two
25−optional arguments:
26+optional arguments::
2627
2728 make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr
2829
2930 ARCH indicates which architecture to produce headers for, and defaults to the
3031 current architecture. The linux/asm directory of the exported kernel headers
3132 is platform-specific, to see a complete list of supported architectures use
32−the command:
33+the command::
3334
3435 ls -d include/asm-* | sed 's/.*-//'
3536
Documentation/kbuild/index.rst+27−0
@@ -0,0 +1,27 @@
1+:orphan:
2+
3+===================
4+Kernel Build System
5+===================
6+
7+.. toctree::
8+ :maxdepth: 1
9+
10+ kconfig-language
11+ kconfig-macro-language
12+
13+ kbuild
14+ kconfig
15+ makefiles
16+ modules
17+
18+ headers_install
19+
20+ issues
21+
22+.. only:: subproject and html
23+
24+ Indices
25+ =======
26+
27+ * :ref:`genindex`
Documentation/kbuild/issues.rst+11−0
@@ -0,0 +1,11 @@
1+Recursion issue #1
2+------------------
3+
4+ .. include:: Kconfig.recursion-issue-01
5+ :literal:
6+
7+Recursion issue #2
8+------------------
9+
10+ .. include:: Kconfig.recursion-issue-02
11+ :literal:
Documentation/kbuild/kbuild.rstrenamed from Documentation/kbuild/kbuild.txt+68−51
@@ -1,13 +1,19 @@
1+======
2+Kbuild
3+======
4+
5+
16 Output files
7+============
28
39 modules.order
4−--------------------------------------------------
10+-------------
511 This file records the order in which modules appear in Makefiles. This
612 is used by modprobe to deterministically resolve aliases that match
713 multiple modules.
814
915 modules.builtin
10−--------------------------------------------------
16+---------------
1117 This file lists all modules that are built into the kernel. This is used
1218 by modprobe to not fail when trying to load something builtin.
1319
@@ -18,84 +24,90 @@ Unlike modinfo of a separate module, all fields are prefixed with module name. · 4 unmodified lines
1824
1925
2026 Environment variables
27+=====================
2128
2229 KCPPFLAGS
23−--------------------------------------------------
30+---------
2431 Additional options to pass when preprocessing. The preprocessing options
2532 will be used in all cases where kbuild does preprocessing including
2633 building C files and assembler files.
2734
2835 KAFLAGS
29−--------------------------------------------------
36+-------
3037 Additional options to the assembler (for built-in and modules).
3138
3239 AFLAGS_MODULE
33−--------------------------------------------------
40+-------------
3441 Additional module specific options to use for $(AS).
3542
3643 AFLAGS_KERNEL
37−--------------------------------------------------
44+-------------
3845 Additional options for $(AS) when used for assembler
3946 code for code that is compiled as built-in.
4047
4148 KCFLAGS
42−--------------------------------------------------
49+-------
4350 Additional options to the C compiler (for built-in and modules).
4451
4552 CFLAGS_KERNEL
46−--------------------------------------------------
53+-------------
4754 Additional options for $(CC) when used to compile
4855 code that is compiled as built-in.
4956
5057 CFLAGS_MODULE
51−--------------------------------------------------
58+-------------
5259 Additional module specific options to use for $(CC).
5360
5461 LDFLAGS_MODULE
55−--------------------------------------------------
62+--------------
5663 Additional options used for $(LD) when linking modules.
5764
5865 HOSTCFLAGS
59−--------------------------------------------------
66+----------
6067 Additional flags to be passed to $(HOSTCC) when building host programs.
6168
6269 HOSTCXXFLAGS
63−--------------------------------------------------
70+------------
6471 Additional flags to be passed to $(HOSTCXX) when building host programs.
6572
6673 HOSTLDFLAGS
67−--------------------------------------------------
74+-----------
6875 Additional flags to be passed when linking host programs.
6976
7077 HOSTLDLIBS
71−--------------------------------------------------
78+----------
7279 Additional libraries to link against when building host programs.
7380
7481 KBUILD_KCONFIG
75−--------------------------------------------------
82+--------------
7683 Set the top-level Kconfig file to the value of this environment
7784 variable. The default name is "Kconfig".
7885
7986 KBUILD_VERBOSE
80−--------------------------------------------------
87+--------------
8188 Set the kbuild verbosity. Can be assigned same values as "V=...".
89+
8290 See make help for the full list.
91+
8392 Setting "V=..." takes precedence over KBUILD_VERBOSE.
8493
8594 KBUILD_EXTMOD
86−--------------------------------------------------
95+-------------
8796 Set the directory to look for the kernel source when building external
8897 modules.
98+
8999 Setting "M=..." takes precedence over KBUILD_EXTMOD.
90100
91101 KBUILD_OUTPUT
92−--------------------------------------------------
102+-------------
93103 Specify the output directory when building the kernel.
104+
94105 The output directory can also be specified using "O=...".
106+
95107 Setting "O=..." takes precedence over KBUILD_OUTPUT.
96108
97109 KBUILD_DEBARCH
98−--------------------------------------------------
110+--------------
99111 For the deb-pkg target, allows overriding the normal heuristics deployed by
100112 deb-pkg. Normally deb-pkg attempts to guess the right architecture based on
101113 the UTS_MACHINE variable, and on some architectures also the kernel config.
@@ -103,44 +115,48 @@ The value of KBUILD_DEBARCH is assumed (not checked) to be a valid Debian · 1 unmodified line
103115 architecture.
104116
105117 ARCH
106−--------------------------------------------------
118+----
107119 Set ARCH to the architecture to be built.
120+
108121 In most cases the name of the architecture is the same as the
109122 directory name found in the arch/ directory.
123+
110124 But some architectures such as x86 and sparc have aliases.
111−x86: i386 for 32 bit, x86_64 for 64 bit
112−sh: sh for 32 bit, sh64 for 64 bit
113−sparc: sparc32 for 32 bit, sparc64 for 64 bit
125+
126+- x86: i386 for 32 bit, x86_64 for 64 bit
127+- sh: sh for 32 bit, sh64 for 64 bit
128+- sparc: sparc32 for 32 bit, sparc64 for 64 bit
114129
115130 CROSS_COMPILE
116−--------------------------------------------------
131+-------------
117132 Specify an optional fixed part of the binutils filename.
118133 CROSS_COMPILE can be a part of the filename or the full path.
119134
120135 CROSS_COMPILE is also used for ccache in some setups.
121136
122137 CF
123−--------------------------------------------------
138+--
124139 Additional options for sparse.
125−CF is often used on the command-line like this:
140+
141+CF is often used on the command-line like this::
126142
127143 make CF=-Wbitwise C=2
128144
129145 INSTALL_PATH
130−--------------------------------------------------
146+------------
131147 INSTALL_PATH specifies where to place the updated kernel and system map
132148 images. Default is /boot, but you can set it to other values.
133149
134150 INSTALLKERNEL
135−--------------------------------------------------
151+-------------
136152 Install script called when using "make install".
137153 The default name is "installkernel".
138154
139155 The script will be called with the following arguments:
140− $1 - kernel version
141− $2 - kernel image file
142− $3 - kernel map file
143− $4 - default install path (use root directory if blank)
156+ - $1 - kernel version
157+ - $2 - kernel image file
158+ - $3 - kernel map file
159+ - $4 - default install path (use root directory if blank)
144160
145161 The implementation of "make install" is architecture specific
146162 and it may differ from the above.
@@ -149,32 +165,33 @@ INSTALLKERNEL is provided to enable the possibility to · 2 unmodified lines
149165 specify a custom installer when cross compiling a kernel.
150166
151167 MODLIB
152−--------------------------------------------------
168+------
153169 Specify where to install modules.
154−The default value is:
170+The default value is::
155171
156172 $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
157173
158174 The value can be overridden in which case the default value is ignored.
159175
160176 INSTALL_MOD_PATH
161−--------------------------------------------------
177+----------------
162178 INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
163179 relocations required by build roots. This is not defined in the
164180 makefile but the argument can be passed to make if needed.
165181
166182 INSTALL_MOD_STRIP
167−--------------------------------------------------
183+-----------------
168184 INSTALL_MOD_STRIP, if defined, will cause modules to be
169185 stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
170186 the default option --strip-debug will be used. Otherwise,
171187 INSTALL_MOD_STRIP value will be used as the options to the strip command.
172188
173189 INSTALL_HDR_PATH
174−--------------------------------------------------
190+----------------
175191 INSTALL_HDR_PATH specifies where to install user space headers when
176192 executing "make headers_*".
177−The default value is:
193+
194+The default value is::
178195
179196 $(objtree)/usr
180197
@@ -184,65 +201,65 @@ The output directory is often set using "O=..." on the commandline. · 3 unmodified lines
184201 The value can be overridden in which case the default value is ignored.
185202
186203 KBUILD_SIGN_PIN
187−--------------------------------------------------
204+---------------
188205 This variable allows a passphrase or PIN to be passed to the sign-file
189206 utility when signing kernel modules, if the private key requires such.
190207
191208 KBUILD_MODPOST_WARN
192−--------------------------------------------------
209+-------------------
193210 KBUILD_MODPOST_WARN can be set to avoid errors in case of undefined
194211 symbols in the final module linking stage. It changes such errors
195212 into warnings.
196213
197214 KBUILD_MODPOST_NOFINAL
198−--------------------------------------------------
215+----------------------
199216 KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules.
200217 This is solely useful to speed up test compiles.
201218
202219 KBUILD_EXTRA_SYMBOLS
203−--------------------------------------------------
220+--------------------
204221 For modules that use symbols from other modules.
205222 See more details in modules.txt.
206223
207224 ALLSOURCE_ARCHS
208−--------------------------------------------------
225+---------------
209226 For tags/TAGS/cscope targets, you can specify more than one arch
210−to be included in the databases, separated by blank space. E.g.:
227+to be included in the databases, separated by blank space. E.g.::
211228
212229 $ make ALLSOURCE_ARCHS="x86 mips arm" tags
213230
214−To get all available archs you can also specify all. E.g.:
231+To get all available archs you can also specify all. E.g.::
215232
216233 $ make ALLSOURCE_ARCHS=all tags
217234
218235 KBUILD_ENABLE_EXTRA_GCC_CHECKS
219−--------------------------------------------------
236+------------------------------
220237 If enabled over the make command line with "W=1", it turns on additional
221238 gcc -W... options for more extensive build-time checking.
222239
223240 KBUILD_BUILD_TIMESTAMP
224−--------------------------------------------------
241+----------------------
225242 Setting this to a date string overrides the timestamp used in the
226243 UTS_VERSION definition (uname -v in the running kernel). The value has to
227244 be a string that can be passed to date -d. The default value
228245 is the output of the date command at one point during build.
229246
230247 KBUILD_BUILD_USER, KBUILD_BUILD_HOST
231−--------------------------------------------------
248+------------------------------------
232249 These two variables allow to override the user@host string displayed during
233250 boot and in /proc/version. The default value is the output of the commands
234251 whoami and host, respectively.
235252
236253 KBUILD_LDS
237−--------------------------------------------------
254+----------
238255 The linker script with full path. Assigned by the top-level Makefile.
239256
240257 KBUILD_VMLINUX_OBJS
241−--------------------------------------------------
258+-------------------
242259 All object files for vmlinux. They are linked to vmlinux in the same
243260 order as listed in KBUILD_VMLINUX_OBJS.
244261
245262 KBUILD_VMLINUX_LIBS
246−--------------------------------------------------
263+-------------------
247264 All .a "lib" files for vmlinux. KBUILD_VMLINUX_OBJS and KBUILD_VMLINUX_LIBS
248265 together specify all the object files used to link vmlinux.
Documentation/kbuild/kconfig-language.rstrenamed from Documentation/kbuild/kconfig-language.txt+131−111
@@ -1,8 +1,12 @@
1+================
2+Kconfig Language
3+================
4+
15 Introduction
26 ------------
37
48 The configuration database is a collection of configuration options
5−organized in a tree structure:
9+organized in a tree structure::
610
711 +- Code maturity level options
812 | +- Prompt for development and/or incomplete code/drivers
@@ -25,9 +29,9 @@ Menu entries · 16 unmodified lines
2529 ------------
2630
2731 Most entries define a config option; all other entries help to organize
28−them. A single configuration option is defined like this:
32+them. A single configuration option is defined like this::
2933
30−config MODVERSIONS
34+ config MODVERSIONS
3135 bool "Set version information on all module symbols"
3236 depends on MODULES
3337 help
@@ -52,10 +56,12 @@ applicable everywhere (see syntax). · 18 unmodified lines
5256 Every config option must have a type. There are only two basic types:
5357 tristate and string; the other types are based on these two. The type
5458 definition optionally accepts an input prompt, so these two examples
55− are equivalent:
59+ are equivalent::
5660
5761 bool "Networking support"
58− and
62+
63+ and::
64+
5965 bool
6066 prompt "Networking support"
6167
@@ -98,8 +104,10 @@ applicable everywhere (see syntax). · 36 unmodified lines
98104 d) Hardware or infrastructure that everybody expects, such as CONFIG_NET
99105 or CONFIG_BLOCK. These are rare exceptions.
100106
101−- type definition + default value:
107+- type definition + default value::
108+
102109 "def_bool"/"def_tristate" <expr> ["if" <expr>]
110+
103111 This is a shorthand notation for a type definition plus a value.
104112 Optionally dependencies for this default value can be added with "if".
105113
@@ -107,11 +115,13 @@ applicable everywhere (see syntax). · 1 unmodified line
107115 This defines a dependency for this menu entry. If multiple
108116 dependencies are defined, they are connected with '&&'. Dependencies
109117 are applied to all other options within this menu entry (which also
110− accept an "if" expression), so these two examples are equivalent:
118+ accept an "if" expression), so these two examples are equivalent::
111119
112120 bool "foo" if BAR
113121 default y if BAR
114− and
122+
123+ and::
124+
115125 depends on BAR
116126 bool "foo"
117127 default y
@@ -124,6 +134,7 @@ applicable everywhere (see syntax). · 6 unmodified lines
124134 times, the limit is set to the largest selection.
125135 Reverse dependencies can only be used with boolean or tristate
126136 symbols.
137+
127138 Note:
128139 select should be used with care. select will force
129140 a symbol to a value without visiting the dependencies.
@@ -139,24 +150,26 @@ applicable everywhere (see syntax). · 9 unmodified lines
139150 symbol except that the "implied" symbol's value may still be set to n
140151 from a direct dependency or with a visible prompt.
141152
142− Given the following example:
153+ Given the following example::
143154
144− config FOO
155+ config FOO
145156 tristate
146157 imply BAZ
147158
148− config BAZ
159+ config BAZ
149160 tristate
150161 depends on BAR
151162
152163 The following values are possible:
153164
165+ === === ============= ==============
154166 FOO BAR BAZ's default choice for BAZ
155− --- --- ------------- --------------
167+ === === ============= ==============
156168 n y n N/m/y
157169 m y m M/y/n
158170 y y y Y/n
159171 y n * N
172+ === === ============= ==============
160173
161174 This is useful e.g. with multiple drivers that want to indicate their
162175 ability to hook into a secondary subsystem while allowing the user to
@@ -208,9 +221,9 @@ Menu dependencies · 45 unmodified lines
208221 Dependencies define the visibility of a menu entry and can also reduce
209222 the input range of tristate symbols. The tristate logic used in the
210223 expressions uses one more state than normal boolean logic to express the
211−module state. Dependency expressions have the following syntax:
224+module state. Dependency expressions have the following syntax::
212225
213−<expr> ::= <symbol> (1)
226+ <expr> ::= <symbol> (1)
214227 <symbol> '=' <symbol> (2)
215228 <symbol> '!=' <symbol> (3)
216229 <symbol1> '<' <symbol2> (4)
@@ -222,7 +235,7 @@ module state. Dependency expressions have the following syntax: · 5 unmodified lines
222235 <expr> '&&' <expr> (7)
223236 <expr> '||' <expr> (8)
224237
225−Expressions are listed in decreasing order of precedence.
238+Expressions are listed in decreasing order of precedence.
226239
227240 (1) Convert the symbol into an expression. Boolean and tristate symbols
228241 are simply converted into the respective expression values. All
@@ -255,15 +268,15 @@ Menu structure · 26 unmodified lines
255268 --------------
256269
257270 The position of a menu entry in the tree is determined in two ways. First
258−it can be specified explicitly:
271+it can be specified explicitly::
259272
260−menu "Network device support"
273+ menu "Network device support"
261274 depends on NET
262275
263−config NETDEVICES
276+ config NETDEVICES
264277 ...
265278
266−endmenu
279+ endmenu
267280
268281 All entries within the "menu" ... "endmenu" block become a submenu of
269282 "Network device support". All subentries inherit the dependencies from
@@ -275,17 +288,18 @@ dependencies. If a menu entry somehow depends on the previous entry, it · 5 unmodified lines
275288 can be made a submenu of it. First, the previous (parent) symbol must
276289 be part of the dependency list and then one of these two conditions
277290 must be true:
291+
278292 - the child entry must become invisible, if the parent is set to 'n'
279−- the child entry must only be visible, if the parent is visible
293+- the child entry must only be visible, if the parent is visible::
280294
281−config MODULES
295+ config MODULES
282296 bool "Enable loadable module support"
283297
284−config MODVERSIONS
298+ config MODVERSIONS
285299 bool "Set version information on all module symbols"
286300 depends on MODULES
287301
288−comment "module support disabled"
302+ comment "module support disabled"
289303 depends on !MODULES
290304
291305 MODVERSIONS directly depends on MODULES, this means it's only visible if
@@ -299,6 +313,7 @@ Kconfig syntax · 7 unmodified lines
299313 The configuration file describes a series of menu entries, where every
300314 line starts with a keyword (except help texts). The following keywords
301315 end a menu entry:
316+
302317 - config
303318 - menuconfig
304319 - choice/endchoice
@@ -306,17 +321,17 @@ end a menu entry: · 1 unmodified line
306321 - menu/endmenu
307322 - if/endif
308323 - source
309−The first five also start the definition of a menu entry.
310324
311−config:
325+The first five also start the definition of a menu entry.
312326
327+config::
313328 "config" <symbol>
314329 <config options>
315330
316331 This defines a config symbol <symbol> and accepts any of above
317332 attributes as options.
318333
319−menuconfig:
334+menuconfig::
320335 "menuconfig" <symbol>
321336 <config options>
322337
@@ -325,43 +340,43 @@ hint to front ends, that all suboptions should be displayed as a · 2 unmodified lines
325340 separate list of options. To make sure all the suboptions will really
326341 show up under the menuconfig entry and not outside of it, every item
327342 from the <config options> list must depend on the menuconfig symbol.
328−In practice, this is achieved by using one of the next two constructs:
329−
330−(1):
331−menuconfig M
332−if M
333− config C1
334− config C2
335−endif
336−
337−(2):
338−menuconfig M
339−config C1
340− depends on M
341−config C2
342− depends on M
343+In practice, this is achieved by using one of the next two constructs::
344+
345+ (1):
346+ menuconfig M
347+ if M
348+ config C1
349+ config C2
350+ endif
351+
352+ (2):
353+ menuconfig M
354+ config C1
355+ depends on M
356+ config C2
357+ depends on M
343358
344359 In the following examples (3) and (4), C1 and C2 still have the M
345360 dependency, but will not appear under menuconfig M anymore, because
346−of C0, which doesn't depend on M:
347−
348−(3):
349−menuconfig M
350− config C0
351−if M
352− config C1
353− config C2
354−endif
355−
356−(4):
357−menuconfig M
358−config C0
359−config C1
360− depends on M
361−config C2
362− depends on M
363−
364−choices:
361+of C0, which doesn't depend on M::
362+
363+ (3):
364+ menuconfig M
365+ config C0
366+ if M
367+ config C1
368+ config C2
369+ endif
370+
371+ (4):
372+ menuconfig M
373+ config C0
374+ config C1
375+ depends on M
376+ config C2
377+ depends on M
378+
379+choices::
365380
366381 "choice" [symbol]
367382 <choice options>
@@ -387,7 +402,7 @@ definitions of that choice. If a [symbol] is associated to the choice, · 19 unmodified lines
387402 then you may define the same choice (i.e. with the same entries) in another
388403 place.
389404
390−comment:
405+comment::
391406
392407 "comment" <prompt>
393408 <comment options>
@@ -396,7 +411,7 @@ This defines a comment which is displayed to the user during the · 2 unmodified lines
396411 configuration process and is also echoed to the output files. The only
397412 possible options are dependencies.
398413
399−menu:
414+menu::
400415
401416 "menu" <prompt>
402417 <menu options>
@@ -407,7 +422,7 @@ This defines a menu block, see "Menu structure" above for more · 4 unmodified lines
407422 information. The only possible options are dependencies and "visible"
408423 attributes.
409424
410−if:
425+if::
411426
412427 "if" <expr>
413428 <if block>
@@ -416,13 +431,13 @@ if: · 2 unmodified lines
416431 This defines an if block. The dependency expression <expr> is appended
417432 to all enclosed menu entries.
418433
419−source:
434+source::
420435
421436 "source" <prompt>
422437
423438 This reads the specified configuration file. This file is always parsed.
424439
425−mainmenu:
440+mainmenu::
426441
427442 "mainmenu" <prompt>
428443
@@ -452,20 +467,21 @@ that is defined in a common Kconfig file and selected by the relevant · 23 unmodified lines
452467 architectures.
453468 An example is the generic IOMAP functionality.
454469
455−We would in lib/Kconfig see:
470+We would in lib/Kconfig see::
456471
457−# Generic IOMAP is used to ...
458−config HAVE_GENERIC_IOMAP
472+ # Generic IOMAP is used to ...
473+ config HAVE_GENERIC_IOMAP
459474
460−config GENERIC_IOMAP
475+ config GENERIC_IOMAP
461476 depends on HAVE_GENERIC_IOMAP && FOO
462477
463−And in lib/Makefile we would see:
464−obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
478+And in lib/Makefile we would see::
465479
466−For each architecture using the generic IOMAP functionality we would see:
480+ obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
467481
468−config X86
482+For each architecture using the generic IOMAP functionality we would see::
483+
484+ config X86
469485 select ...
470486 select HAVE_GENERIC_IOMAP
471487 select ...
@@ -484,25 +500,25 @@ Adding features that need compiler support · 12 unmodified lines
484500
485501 There are several features that need compiler support. The recommended way
486502 to describe the dependency on the compiler feature is to use "depends on"
487−followed by a test macro.
503+followed by a test macro::
488504
489−config STACKPROTECTOR
505+ config STACKPROTECTOR
490506 bool "Stack Protector buffer overflow detection"
491507 depends on $(cc-option,-fstack-protector)
492508 ...
493509
494510 If you need to expose a compiler capability to makefiles and/or C source files,
495−CC_HAS_ is the recommended prefix for the config option.
511+`CC_HAS_` is the recommended prefix for the config option::
496512
497−config CC_HAS_STACKPROTECTOR_NONE
513+ config CC_HAS_STACKPROTECTOR_NONE
498514 def_bool $(cc-option,-fno-stack-protector)
499515
500516 Build as module only
501517 ~~~~~~~~~~~~~~~~~~~~
502518 To restrict a component build to module-only, qualify its config symbol
503−with "depends on m". E.g.:
519+with "depends on m". E.g.::
504520
505−config FOO
521+ config FOO
506522 depends on BAR && m
507523
508524 limits FOO to module (=m) or disabled (=n).
@@ -529,18 +545,18 @@ Simple Kconfig recursive issue · 20 unmodified lines
529545
530546 Read: Documentation/kbuild/Kconfig.recursion-issue-01
531547
532−Test with:
548+Test with::
533549
534−make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.recursion-issue-01 allnoconfig
550+ make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.recursion-issue-01 allnoconfig
535551
536552 Cumulative Kconfig recursive issue
537553 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538554
539555 Read: Documentation/kbuild/Kconfig.recursion-issue-02
540556
541−Test with:
557+Test with::
542558
543−make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.recursion-issue-02 allnoconfig
559+ make KBUILD_KCONFIG=Documentation/kbuild/Kconfig.recursion-issue-02 allnoconfig
544560
545561 Practical solutions to kconfig recursive issue
546562 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -551,7 +567,9 @@ historical issues resolved through these different solutions. · 4 unmodified lines
551567
552568 a) Remove any superfluous "select FOO" or "depends on FOO"
553569 b) Match dependency semantics:
570+
554571 b1) Swap all "select FOO" to "depends on FOO" or,
572+
555573 b2) Swap all "depends on FOO" to "select FOO"
556574
557575 The resolution to a) can be tested with the sample Kconfig file
@@ -566,8 +584,9 @@ Documentation/kbuild/Kconfig.recursion-issue-02. · 8 unmodified lines
566584 Below is a list of examples of prior fixes for these types of recursive issues;
567585 all errors appear to involve one or more select's and one or more "depends on".
568586
587+============ ===================================
569588 commit fix
570−====== ===
589+============ ===================================
571590 06b718c01208 select A -> depends on A
572591 c22eacfe82f9 depends on A -> depends on B
573592 6a91e854442c select A -> depends on A
@@ -590,6 +609,7 @@ d9f9ab51e55e select A -> depends on A · 16 unmodified lines
590609 0c51a4d8abd6 depends on A -> select A (3)
591610 e98062ed6dc4 select A -> depends on A (3)
592611 91e5d284a7f1 select A -> (null)
612+============ ===================================
593613
594614 (1) Partial (or no) quote of error.
595615 (2) That seems to be the gist of that fix.
@@ -616,11 +636,11 @@ Semantics of Kconfig · 20 unmodified lines
616636 ~~~~~~~~~~~~~~~~~~~~
617637
618638 The use of Kconfig is broad, Linux is now only one of Kconfig's users:
619−one study has completed a broad analysis of Kconfig use in 12 projects [0].
639+one study has completed a broad analysis of Kconfig use in 12 projects [0]_.
620640 Despite its widespread use, and although this document does a reasonable job
621641 in documenting basic Kconfig syntax a more precise definition of Kconfig
622642 semantics is welcomed. One project deduced Kconfig semantics through
623−the use of the xconfig configurator [1]. Work should be done to confirm if
643+the use of the xconfig configurator [1]_. Work should be done to confirm if
624644 the deduced semantics matches our intended Kconfig design goals.
625645
626646 Having well defined semantics can be useful for tools for practical
@@ -628,42 +648,42 @@ evaluation of depenencies, for instance one such use known case was work to · 1 unmodified line
628648 express in boolean abstraction of the inferred semantics of Kconfig to
629649 translate Kconfig logic into boolean formulas and run a SAT solver on this to
630650 find dead code / features (always inactive), 114 dead features were found in
631−Linux using this methodology [1] (Section 8: Threats to validity).
651+Linux using this methodology [1]_ (Section 8: Threats to validity).
632652
633653 Confirming this could prove useful as Kconfig stands as one of the the leading
634−industrial variability modeling languages [1] [2]. Its study would help
654+industrial variability modeling languages [1]_ [2]_. Its study would help
635655 evaluate practical uses of such languages, their use was only theoretical
636656 and real world requirements were not well understood. As it stands though
637657 only reverse engineering techniques have been used to deduce semantics from
638−variability modeling languages such as Kconfig [3].
658+variability modeling languages such as Kconfig [3]_.
639659
640−[0] http://www.eng.uwaterloo.ca/~shshe/kconfig_semantics.pdf
641−[1] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf
642−[2] http://gsd.uwaterloo.ca/sites/default/files/ase241-berger_0.pdf
643−[3] http://gsd.uwaterloo.ca/sites/default/files/icse2011.pdf
660+.. [0] http://www.eng.uwaterloo.ca/~shshe/kconfig_semantics.pdf
661+.. [1] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf
662+.. [2] http://gsd.uwaterloo.ca/sites/default/files/ase241-berger_0.pdf
663+.. [3] http://gsd.uwaterloo.ca/sites/default/files/icse2011.pdf
644664
645665 Full SAT solver for Kconfig
646666 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
647667
648−Although SAT solvers [0] haven't yet been used by Kconfig directly, as noted in
649−the previous subsection, work has been done however to express in boolean
668+Although SAT solvers [4]_ haven't yet been used by Kconfig directly, as noted
669+in the previous subsection, work has been done however to express in boolean
650670 abstraction the inferred semantics of Kconfig to translate Kconfig logic into
651−boolean formulas and run a SAT solver on it [1]. Another known related project
652−is CADOS [2] (former VAMOS [3]) and the tools, mainly undertaker [4], which has
653−been introduced first with [5]. The basic concept of undertaker is to exract
654−variability models from Kconfig, and put them together with a propositional
655−formula extracted from CPP #ifdefs and build-rules into a SAT solver in order
656−to find dead code, dead files, and dead symbols. If using a SAT solver is
657−desirable on Kconfig one approach would be to evaluate repurposing such efforts
658−somehow on Kconfig. There is enough interest from mentors of existing projects
659−to not only help advise how to integrate this work upstream but also help
660−maintain it long term. Interested developers should visit:
671+boolean formulas and run a SAT solver on it [5]_. Another known related project
672+is CADOS [6]_ (former VAMOS [7]_) and the tools, mainly undertaker [8]_, which
673+has been introduced first with [9]_. The basic concept of undertaker is to
674+exract variability models from Kconfig, and put them together with a
675+propositional formula extracted from CPP #ifdefs and build-rules into a SAT
676+solver in order to find dead code, dead files, and dead symbols. If using a SAT
677+solver is desirable on Kconfig one approach would be to evaluate repurposing
678+such efforts somehow on Kconfig. There is enough interest from mentors of
679+existing projects to not only help advise how to integrate this work upstream
680+but also help maintain it long term. Interested developers should visit:
661681
662682 http://kernelnewbies.org/KernelProjects/kconfig-sat
663683
664−[0] http://www.cs.cornell.edu/~sabhar/chapters/SATSolvers-KR-Handbook.pdf
665−[1] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf
666−[2] https://cados.cs.fau.de
667−[3] https://vamos.cs.fau.de
668−[4] https://undertaker.cs.fau.de
669−[5] https://www4.cs.fau.de/Publications/2011/tartler_11_eurosys.pdf
684+.. [4] http://www.cs.cornell.edu/~sabhar/chapters/SATSolvers-KR-Handbook.pdf
685+.. [5] http://gsd.uwaterloo.ca/sites/default/files/vm-2013-berger.pdf
686+.. [6] https://cados.cs.fau.de
687+.. [7] https://vamos.cs.fau.de
688+.. [8] https://undertaker.cs.fau.de
689+.. [9] https://www4.cs.fau.de/Publications/2011/tartler_11_eurosys.pdf
Documentation/kbuild/kconfig-macro-language.rstrenamed from Documentation/kbuild/kconfig-macro-language.txt+21−16
@@ -1,3 +1,7 @@
1+======================
2+Kconfig macro language
3+======================
4+
15 Concept
26 -------
37
@@ -7,7 +11,7 @@ targets and prerequisites. The other is a macro language for performing textual · 3 unmodified lines
711 substitution.
812
913 There is clear distinction between the two language stages. For example, you
10−can write a makefile like follows:
14+can write a makefile like follows::
1115
1216 APP := foo
1317 SRC := foo.c
@@ -17,7 +21,7 @@ can write a makefile like follows: · 3 unmodified lines
1721 $(CC) -o $(APP) $(SRC)
1822
1923 The macro language replaces the variable references with their expanded form,
20−and handles as if the source file were input like follows:
24+and handles as if the source file were input like follows::
2125
2226 foo: foo.c
2327 gcc -o foo foo.c
@@ -26,7 +30,7 @@ Then, Make analyzes the dependency graph and determines the targets to be · 2 unmodified lines
2630 updated.
2731
2832 The idea is quite similar in Kconfig - it is possible to describe a Kconfig
29−file like this:
33+file like this::
3034
3135 CC := gcc
3236
@@ -34,7 +38,7 @@ file like this: · 1 unmodified line
3438 def_bool $(shell, $(srctree)/scripts/gcc-check-foo.sh $(CC))
3539
3640 The macro language in Kconfig processes the source file into the following
37−intermediate:
41+intermediate::
3842
3943 config CC_HAS_FOO
4044 def_bool y
@@ -69,7 +73,7 @@ variable. The righthand side of += is expanded immediately if the lefthand · 28 unmodified lines
6973 side was originally defined as a simple variable. Otherwise, its evaluation is
7074 deferred.
7175
72−The variable reference can take parameters, in the following form:
76+The variable reference can take parameters, in the following form::
7377
7478 $(name,arg1,arg2,arg3)
7579
@@ -141,7 +145,7 @@ Make vs Kconfig · 65 unmodified lines
141145 Kconfig adopts Make-like macro language, but the function call syntax is
142146 slightly different.
143147
144−A function call in Make looks like this:
148+A function call in Make looks like this::
145149
146150 $(func-name arg1,arg2,arg3)
147151
@@ -149,14 +153,14 @@ The function name and the first argument are separated by at least one · 1 unmodified line
149153 whitespace. Then, leading whitespaces are trimmed from the first argument,
150154 while whitespaces in the other arguments are kept. You need to use a kind of
151155 trick to start the first parameter with spaces. For example, if you want
152−to make "info" function print " hello", you can write like follows:
156+to make "info" function print " hello", you can write like follows::
153157
154158 empty :=
155159 space := $(empty) $(empty)
156160 $(info $(space)$(space)hello)
157161
158162 Kconfig uses only commas for delimiters, and keeps all whitespaces in the
159−function call. Some people prefer putting a space after each comma delimiter:
163+function call. Some people prefer putting a space after each comma delimiter::
160164
161165 $(func-name, arg1, arg2, arg3)
162166
@@ -166,7 +170,7 @@ Make - for example, $(subst .c, .o, $(sources)) is a typical mistake; it · 3 unmodified lines
166170 replaces ".c" with " .o".
167171
168172 In Make, a user-defined function is referenced by using a built-in function,
169−'call', like this:
173+'call', like this::
170174
171175 $(call my-func,arg1,arg2,arg3)
172176
@@ -179,12 +183,12 @@ Likewise, $(info hello, world) prints "hello, world" to stdout. You could say · 6 unmodified lines
179183 this is _useful_ inconsistency.
180184
181185 In Kconfig, for simpler implementation and grammatical consistency, commas that
182−appear in the $( ) context are always delimiters. It means
186+appear in the $( ) context are always delimiters. It means::
183187
184188 $(shell, echo hello, world)
185189
186190 is an error because it is passing two parameters where the 'shell' function
187−accepts only one. To pass commas in arguments, you can use the following trick:
191+accepts only one. To pass commas in arguments, you can use the following trick::
188192
189193 comma := ,
190194 $(shell, echo hello$(comma) world)
@@ -195,7 +199,7 @@ Caveats · 4 unmodified lines
195199
196200 A variable (or function) cannot be expanded across tokens. So, you cannot use
197201 a variable as a shorthand for an expression that consists of multiple tokens.
198−The following works:
202+The following works::
199203
200204 RANGE_MIN := 1
201205 RANGE_MAX := 3
@@ -204,7 +208,7 @@ The following works: · 2 unmodified lines
204208 int "foo"
205209 range $(RANGE_MIN) $(RANGE_MAX)
206210
207−But, the following does not work:
211+But, the following does not work::
208212
209213 RANGES := 1 3
210214
@@ -213,7 +217,7 @@ But, the following does not work: · 2 unmodified lines
213217 range $(RANGES)
214218
215219 A variable cannot be expanded to any keyword in Kconfig. The following does
216−not work:
220+not work::
217221
218222 MY_TYPE := tristate
219223
@@ -223,7 +227,8 @@ not work: · 3 unmodified lines
223227
224228 Obviously from the design, $(shell command) is expanded in the textual
225229 substitution phase. You cannot pass symbols to the 'shell' function.
226−The following does not work as expected.
230+
231+The following does not work as expected::
227232
228233 config ENDIAN_FLAG
229234 string
@@ -234,7 +239,7 @@ The following does not work as expected. · 4 unmodified lines
234239 def_bool $(shell $(srctree)/scripts/gcc-check-flag ENDIAN_FLAG)
235240
236241 Instead, you can do like follows so that any function call is statically
237−expanded.
242+expanded::
238243
239244 config CC_HAS_ENDIAN_FLAG
240245 bool
Documentation/kbuild/kconfig.rstrenamed from Documentation/kbuild/kconfig.txt+82−54
@@ -1,4 +1,8 @@
1−This file contains some assistance for using "make *config".
1+===================
2+Kconfig make config
3+===================
4+
5+This file contains some assistance for using `make *config`.
26
37 Use "make help" to list all of the possible configuration targets.
48
@@ -6,9 +10,8 @@ The xconfig ('qconf'), menuconfig ('mconf'), and nconfig ('nconf') · 1 unmodified line
610 programs also have embedded help text. Be sure to check that for
711 navigation, search, and other general help text.
812
9−======================================================================
1013 General
11−--------------------------------------------------
14+-------
1215
1316 New kernel releases often introduce new config symbols. Often more
1417 important, new kernel releases may rename config symbols. When
@@ -17,51 +20,55 @@ this happens, using a previously working .config file and running · 2 unmodified lines
1720 for you, so you may find that you need to see what NEW kernel
1821 symbols have been introduced.
1922
20−To see a list of new config symbols, use
23+To see a list of new config symbols, use::
2124
2225 cp user/some/old.config .config
2326 make listnewconfig
2427
2528 and the config program will list any new symbols, one per line.
2629
27−Alternatively, you can use the brute force method:
30+Alternatively, you can use the brute force method::
2831
2932 make oldconfig
3033 scripts/diffconfig .config.old .config | less
3134
32−______________________________________________________________________
33−Environment variables for '*config'
35+----------------------------------------------------------------------
36+
37+Environment variables for `*config`
3438
3539 KCONFIG_CONFIG
36−--------------------------------------------------
40+--------------
3741 This environment variable can be used to specify a default kernel config
3842 file name to override the default name of ".config".
3943
4044 KCONFIG_OVERWRITECONFIG
41−--------------------------------------------------
45+-----------------------
4246 If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not
4347 break symlinks when .config is a symlink to somewhere else.
4448
45−CONFIG_
46−--------------------------------------------------
47−If you set CONFIG_ in the environment, Kconfig will prefix all symbols
49+`CONFIG_`
50+---------
51+If you set `CONFIG_` in the environment, Kconfig will prefix all symbols
4852 with its value when saving the configuration, instead of using the default,
49−"CONFIG_".
53+`CONFIG_`.
54+
55+----------------------------------------------------------------------
5056
51−______________________________________________________________________
5257 Environment variables for '{allyes/allmod/allno/rand}config'
5358
5459 KCONFIG_ALLCONFIG
55−--------------------------------------------------
60+-----------------
5661 (partially based on lkml email from/by Rob Landley, re: miniconfig)
62+
5763 --------------------------------------------------
64+
5865 The allyesconfig/allmodconfig/allnoconfig/randconfig variants can also
5966 use the environment variable KCONFIG_ALLCONFIG as a flag or a filename
6067 that contains config symbols that the user requires to be set to a
6168 specific value. If KCONFIG_ALLCONFIG is used without a filename where
62−KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", "make *config"
69+KCONFIG_ALLCONFIG == "" or KCONFIG_ALLCONFIG == "1", `make *config`
6370 checks for a file named "all{yes/mod/no/def/random}.config"
64−(corresponding to the *config command that was used) for symbol values
71+(corresponding to the `*config` command that was used) for symbol values
6572 that are to be forced. If this file is not found, it checks for a
6673 file named "all.config" to contain forced values.
6774
@@ -74,43 +81,55 @@ This 'KCONFIG_ALLCONFIG' file is a config file which contains · 6 unmodified lines
7481 (usually a subset of all) preset config symbols. These variable
7582 settings are still subject to normal dependency checks.
7683
77−Examples:
84+Examples::
85+
7886 KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
79−or
87+
88+or::
89+
8090 KCONFIG_ALLCONFIG=mini.config make allnoconfig
81−or
91+
92+or::
93+
8294 make KCONFIG_ALLCONFIG=mini.config allnoconfig
8395
8496 These examples will disable most options (allnoconfig) but enable or
8597 disable the options that are explicitly listed in the specified
8698 mini-config files.
8799
88−______________________________________________________________________
100+----------------------------------------------------------------------
101+
89102 Environment variables for 'randconfig'
90103
91104 KCONFIG_SEED
92−--------------------------------------------------
105+------------
93106 You can set this to the integer value used to seed the RNG, if you want
94107 to somehow debug the behaviour of the kconfig parser/frontends.
95108 If not set, the current time will be used.
96109
97110 KCONFIG_PROBABILITY
98−--------------------------------------------------
111+-------------------
99112 This variable can be used to skew the probabilities. This variable can
100113 be unset or empty, or set to three different formats:
114+
115+ ======================= ================== =====================
101116 KCONFIG_PROBABILITY y:n split y:m:n split
102− -----------------------------------------------------------------
117+ ======================= ================== =====================
103118 unset or empty 50 : 50 33 : 33 : 34
104119 N N : 100-N N/2 : N/2 : 100-N
105120 [1] N:M N+M : 100-(N+M) N : M : 100-(N+M)
106121 [2] N:M:L N : 100-N M : L : 100-(M+L)
122+ ======================= ================== =====================
107123
108124 where N, M and L are integers (in base 10) in the range [0,100], and so
109125 that:
126+
110127 [1] N+M is in the range [0,100]
128+
111129 [2] M+L is in the range [0,100]
112130
113−Examples:
131+Examples::
132+
114133 KCONFIG_PROBABILITY=10
115134 10% of booleans will be set to 'y', 90% to 'n'
116135 5% of tristates will be set to 'y', 5% to 'm', 90% to 'n'
@@ -121,34 +140,36 @@ Examples: · 4 unmodified lines
121140 10% of booleans will be set to 'y', 90% to 'n'
122141 15% of tristates will be set to 'y', 15% to 'm', 70% to 'n'
123142
124−______________________________________________________________________
143+----------------------------------------------------------------------
144+
125145 Environment variables for 'syncconfig'
126146
127147 KCONFIG_NOSILENTUPDATE
128−--------------------------------------------------
148+----------------------
129149 If this variable has a non-blank value, it prevents silent kernel
130150 config updates (requires explicit updates).
131151
132152 KCONFIG_AUTOCONFIG
133−--------------------------------------------------
153+------------------
134154 This environment variable can be set to specify the path & name of the
135155 "auto.conf" file. Its default value is "include/config/auto.conf".
136156
137157 KCONFIG_TRISTATE
138−--------------------------------------------------
158+----------------
139159 This environment variable can be set to specify the path & name of the
140160 "tristate.conf" file. Its default value is "include/config/tristate.conf".
141161
142162 KCONFIG_AUTOHEADER
143−--------------------------------------------------
163+------------------
144164 This environment variable can be set to specify the path & name of the
145165 "autoconf.h" (header) file.
146166 Its default value is "include/generated/autoconf.h".
147167
148168
149−======================================================================
169+----------------------------------------------------------------------
170+
150171 menuconfig
151−--------------------------------------------------
172+----------
152173
153174 SEARCHING for CONFIG symbols
154175
@@ -158,7 +179,8 @@ Searching in menuconfig: · 3 unmodified lines
158179 names, so you have to know something close to what you are
159180 looking for.
160181
161− Example:
182+ Example::
183+
162184 /hotplug
163185 This lists all config symbols that contain "hotplug",
164186 e.g., HOTPLUG_CPU, MEMORY_HOTPLUG.
@@ -166,48 +188,55 @@ Searching in menuconfig: · 1 unmodified line
166188 For search help, enter / followed by TAB-TAB (to highlight
167189 <Help>) and Enter. This will tell you that you can also use
168190 regular expressions (regexes) in the search string, so if you
169− are not interested in MEMORY_HOTPLUG, you could try
191+ are not interested in MEMORY_HOTPLUG, you could try::
170192
171193 /^hotplug
172194
173195 When searching, symbols are sorted thus:
196+
174197 - first, exact matches, sorted alphabetically (an exact match
175198 is when the search matches the complete symbol name);
176199 - then, other matches, sorted alphabetically.
200+
177201 For example: ^ATH.K matches:
202+
178203 ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
179204 [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
205+
180206 of which only ATH5K and ATH9K match exactly and so are sorted
181207 first (and in alphabetical order), then come all other symbols,
182208 sorted in alphabetical order.
183209
184−______________________________________________________________________
210+----------------------------------------------------------------------
211+
185212 User interface options for 'menuconfig'
186213
187214 MENUCONFIG_COLOR
188−--------------------------------------------------
215+----------------
189216 It is possible to select different color themes using the variable
190−MENUCONFIG_COLOR. To select a theme use:
217+MENUCONFIG_COLOR. To select a theme use::
191218
192219 make MENUCONFIG_COLOR=<theme> menuconfig
193220
194−Available themes are:
195− mono => selects colors suitable for monochrome displays
196− blackbg => selects a color scheme with black background
197− classic => theme with blue background. The classic look
198− bluetitle => a LCD friendly version of classic. (default)
221+Available themes are::
222+
223+ - mono => selects colors suitable for monochrome displays
224+ - blackbg => selects a color scheme with black background
225+ - classic => theme with blue background. The classic look
226+ - bluetitle => a LCD friendly version of classic. (default)
199227
200228 MENUCONFIG_MODE
201−--------------------------------------------------
229+---------------
202230 This mode shows all sub-menus in one large tree.
203231
204−Example:
232+Example::
233+
205234 make MENUCONFIG_MODE=single_menu menuconfig
206235
236+----------------------------------------------------------------------
207237
208−======================================================================
209238 nconfig
210−--------------------------------------------------
239+-------
211240
212241 nconfig is an alternate text-based configurator. It lists function
213242 keys across the bottom of the terminal (window) that execute commands.
@@ -231,16 +260,16 @@ Searching in nconfig: · 17 unmodified lines
231260 given string or regular expression (regex).
232261
233262 NCONFIG_MODE
234−--------------------------------------------------
263+------------
235264 This mode shows all sub-menus in one large tree.
236265
237−Example:
266+Example::
238267 make NCONFIG_MODE=single_menu nconfig
239268
269+----------------------------------------------------------------------
240270
241−======================================================================
242271 xconfig
243−--------------------------------------------------
272+-------
244273
245274 Searching in xconfig:
246275
@@ -260,13 +289,12 @@ Searching in xconfig: · 13 unmodified lines
260289 to return to the main menu.
261290
262291
263−======================================================================
292+----------------------------------------------------------------------
293+
264294 gconfig
265−--------------------------------------------------
295+-------
266296
267297 Searching in gconfig:
268298
269299 There is no search command in gconfig. However, gconfig does
270300 have several different viewing choices, modes, and options.
271−
272−###
Documentation/kbuild/makefiles.rstrenamed from Documentation/kbuild/makefiles.txt+335−195
@@ -1,8 +1,10 @@
1+======================
12 Linux Kernel Makefiles
3+======================
24
35 This document describes the Linux kernel Makefiles.
46
5−=== Table of Contents
7+.. Table of Contents
68
79 === 1 Overview
810 === 2 Who does what
@@ -54,9 +56,10 @@ This document describes the Linux kernel Makefiles. · 45 unmodified lines
5456 === 10 Credits
5557 === 11 TODO
5658
57−=== 1 Overview
59+1 Overview
60+==========
5861
59−The Makefiles have five parts:
62+The Makefiles have five parts::
6063
6164 Makefile the top Makefile.
6265 .config the kernel configuration file.
@@ -85,7 +88,8 @@ scripts/Makefile.* contains all the definitions/rules etc. that · 22 unmodified lines
8588 are used to build the kernel based on the kbuild makefiles.
8689
8790
88−=== 2 Who does what
91+2 Who does what
92+===============
8993
9094 People have four different relationships with the kernel Makefiles.
9195
@@ -110,7 +114,8 @@ These people need to know about all aspects of the kernel Makefiles. · 18 unmodified lines
110114 This document is aimed towards normal developers and arch developers.
111115
112116
113−=== 3 The kbuild files
117+3 The kbuild files
118+==================
114119
115120 Most Makefiles within the kernel are kbuild Makefiles that use the
116121 kbuild infrastructure. This chapter introduces the syntax used in the
@@ -122,7 +127,8 @@ file will be used. · 5 unmodified lines
122127 Section 3.1 "Goal definitions" is a quick intro, further chapters provide
123128 more details, with real examples.
124129
125−--- 3.1 Goal definitions
130+3.1 Goal definitions
131+--------------------
126132
127133 Goal definitions are the main part (heart) of the kbuild Makefile.
128134 These lines define the files to be built, any special compilation
@@ -130,7 +136,8 @@ more details, with real examples. · 1 unmodified line
130136
131137 The most simple kbuild makefile contains one line:
132138
133− Example:
139+ Example::
140+
134141 obj-y += foo.o
135142
136143 This tells kbuild that there is one object in that directory, named
@@ -139,14 +146,16 @@ more details, with real examples. · 2 unmodified lines
139146 If foo.o shall be built as a module, the variable obj-m is used.
140147 Therefore the following pattern is often used:
141148
142− Example:
149+ Example::
150+
143151 obj-$(CONFIG_FOO) += foo.o
144152
145153 $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).
146154 If CONFIG_FOO is neither y nor m, then the file will not be compiled
147155 nor linked.
148156
149−--- 3.2 Built-in object goals - obj-y
157+3.2 Built-in object goals - obj-y
158+---------------------------------
150159
151160 The kbuild Makefile specifies object files for vmlinux
152161 in the $(obj-y) lists. These lists depend on the kernel
@@ -167,14 +176,16 @@ more details, with real examples. · 14 unmodified lines
167176 order may e.g. change the order in which your SCSI
168177 controllers are detected, and thus your disks are renumbered.
169178
170− Example:
179+ Example::
180+
171181 #drivers/isdn/i4l/Makefile
172182 # Makefile for the kernel ISDN subsystem and device drivers.
173183 # Each configuration option enables a list of files.
174184 obj-$(CONFIG_ISDN_I4L) += isdn.o
175185 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
176186
177−--- 3.3 Loadable module goals - obj-m
187+3.3 Loadable module goals - obj-m
188+---------------------------------
178189
179190 $(obj-m) specifies object files which are built as loadable
180191 kernel modules.
@@ -183,7 +194,8 @@ more details, with real examples. · 2 unmodified lines
183194 files. In the case of one source file, the kbuild makefile
184195 simply adds the file to $(obj-m).
185196
186− Example:
197+ Example::
198+
187199 #drivers/isdn/i4l/Makefile
188200 obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
189201
@@ -195,7 +207,8 @@ more details, with real examples. · 5 unmodified lines
195207 module from, so you have to tell it by setting a $(<module_name>-y)
196208 variable.
197209
198− Example:
210+ Example::
211+
199212 #drivers/isdn/i4l/Makefile
200213 obj-$(CONFIG_ISDN_I4L) += isdn.o
201214 isdn-y := isdn_net_lib.o isdn_v110.o isdn_common.o
@@ -205,10 +218,11 @@ more details, with real examples. · 3 unmodified lines
205218 "$(LD) -r" on the list of these files to generate isdn.o.
206219
207220 Due to kbuild recognizing $(<module_name>-y) for composite objects,
208− you can use the value of a CONFIG_ symbol to optionally include an
221+ you can use the value of a `CONFIG_` symbol to optionally include an
209222 object file as part of a composite object.
210223
211− Example:
224+ Example::
225+
212226 #fs/ext2/Makefile
213227 obj-$(CONFIG_EXT2_FS) += ext2.o
214228 ext2-y := balloc.o dir.o file.o ialloc.o inode.o ioctl.o \
@@ -225,12 +239,14 @@ more details, with real examples. · 10 unmodified lines
225239 kbuild will build an ext2.o file for you out of the individual
226240 parts and then link this into built-in.a, as you would expect.
227241
228−--- 3.4 Objects which export symbols
242+3.4 Objects which export symbols
243+--------------------------------
229244
230245 No special notation is required in the makefiles for
231246 modules exporting symbols.
232247
233−--- 3.5 Library file goals - lib-y
248+3.5 Library file goals - lib-y
249+------------------------------
234250
235251 Objects listed with obj-* are used for modules, or
236252 combined in a built-in.a for that specific directory.
@@ -247,18 +263,21 @@ more details, with real examples. · 10 unmodified lines
247263 and to be part of a library. Therefore the same directory
248264 may contain both a built-in.a and a lib.a file.
249265
250− Example:
266+ Example::
267+
251268 #arch/x86/lib/Makefile
252269 lib-y := delay.o
253270
254271 This will create a library lib.a based on delay.o. For kbuild to
255272 actually recognize that there is a lib.a being built, the directory
256273 shall be listed in libs-y.
274+
257275 See also "6.4 List directories to visit when descending".
258276
259− Use of lib-y is normally restricted to lib/ and arch/*/lib.
277+ Use of lib-y is normally restricted to `lib/` and `arch/*/lib`.
260278
261−--- 3.6 Descending down in directories
279+3.6 Descending down in directories
280+----------------------------------
262281
263282 A Makefile is only responsible for building objects in its own
264283 directory. Files in subdirectories should be taken care of by
@@ -270,7 +289,8 @@ more details, with real examples. · 5 unmodified lines
270289 ext2 lives in a separate directory, and the Makefile present in fs/
271290 tells kbuild to descend down using the following assignment.
272291
273− Example:
292+ Example::
293+
274294 #fs/Makefile
275295 obj-$(CONFIG_EXT2_FS) += ext2/
276296
@@ -281,11 +301,12 @@ more details, with real examples. · 4 unmodified lines
281301 the directory, it is the Makefile in the subdirectory that
282302 specifies what is modular and what is built-in.
283303
284− It is good practice to use a CONFIG_ variable when assigning directory
304+ It is good practice to use a `CONFIG_` variable when assigning directory
285305 names. This allows kbuild to totally skip the directory if the
286− corresponding CONFIG_ option is neither 'y' nor 'm'.
306+ corresponding `CONFIG_` option is neither 'y' nor 'm'.
287307
288−--- 3.7 Compilation flags
308+3.7 Compilation flags
309+---------------------
289310
290311 ccflags-y, asflags-y and ldflags-y
291312 These three flags apply only to the kbuild makefile in which they
@@ -297,7 +318,8 @@ more details, with real examples. · 5 unmodified lines
297318
298319 ccflags-y specifies options for compiling with $(CC).
299320
300− Example:
321+ Example::
322+
301323 # drivers/acpi/acpica/Makefile
302324 ccflags-y := -Os -D_LINUX -DBUILDING_ACPICA
303325 ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
@@ -308,13 +330,15 @@ more details, with real examples. · 4 unmodified lines
308330
309331 asflags-y specifies options for assembling with $(AS).
310332
311− Example:
333+ Example::
334+
312335 #arch/sparc/kernel/Makefile
313336 asflags-y := -ansi
314337
315338 ldflags-y specifies options for linking with $(LD).
316339
317− Example:
340+ Example::
341+
318342 #arch/cris/boot/compressed/Makefile
319343 ldflags-y += -T $(srctree)/$(src)/decompress_$(arch-y).lds
320344
@@ -325,18 +349,19 @@ more details, with real examples. · 4 unmodified lines
325349 Options specified using subdir-* are added to the commandline before
326350 the options specified using the non-subdir variants.
327351
328− Example:
352+ Example::
353+
329354 subdir-ccflags-y := -Werror
330355
331356 CFLAGS_$@, AFLAGS_$@
332−
333357 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
334358 kbuild makefile.
335359
336360 $(CFLAGS_$@) specifies per-file options for $(CC). The $@
337361 part has a literal value which specifies the file that it is for.
338362
339− Example:
363+ Example::
364+
340365 # drivers/scsi/Makefile
341366 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
342367 CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ \
@@ -347,24 +372,27 @@ more details, with real examples. · 4 unmodified lines
347372 $(AFLAGS_$@) is a similar feature for source files in assembly
348373 languages.
349374
350− Example:
375+ Example::
376+
351377 # arch/arm/kernel/Makefile
352378 AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET)
353379 AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
354380 AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
355381
356382
357−--- 3.9 Dependency tracking
383+3.9 Dependency tracking
384+-----------------------
358385
359386 Kbuild tracks dependencies on the following:
360− 1) All prerequisite files (both *.c and *.h)
361− 2) CONFIG_ options used in all prerequisite files
387+ 1) All prerequisite files (both `*.c` and `*.h`)
388+ 2) `CONFIG_` options used in all prerequisite files
362389 3) Command-line used to compile target
363390
364391 Thus, if you change an option to $(CC) all affected files will
365392 be re-compiled.
366393
367−--- 3.10 Special Rules
394+3.10 Special Rules
395+------------------
368396
369397 Special rules are used when the kbuild infrastructure does
370398 not provide the required support. A typical example is
@@ -379,43 +407,47 @@ more details, with real examples. · 8 unmodified lines
379407
380408 Two variables are used when defining special rules:
381409
382− $(src)
383− $(src) is a relative path which points to the directory
384− where the Makefile is located. Always use $(src) when
385− referring to files located in the src tree.
410+ $(src)
411+ $(src) is a relative path which points to the directory
412+ where the Makefile is located. Always use $(src) when
413+ referring to files located in the src tree.
414+
415+ $(obj)
416+ $(obj) is a relative path which points to the directory
417+ where the target is saved. Always use $(obj) when
418+ referring to generated files.
386419
387− $(obj)
388− $(obj) is a relative path which points to the directory
389− where the target is saved. Always use $(obj) when
390− referring to generated files.
420+ Example::
391421
392− Example:
393422 #drivers/scsi/Makefile
394423 $(obj)/53c8xx_d.h: $(src)/53c7,8xx.scr $(src)/script_asm.pl
395424 $(CPP) -DCHIP=810 - < $< | ... $(src)/script_asm.pl
396425
397− This is a special rule, following the normal syntax
398− required by make.
399− The target file depends on two prerequisite files. References
400− to the target file are prefixed with $(obj), references
401− to prerequisites are referenced with $(src) (because they are not
402− generated files).
403−
404− $(kecho)
405− echoing information to user in a rule is often a good practice
406− but when execution "make -s" one does not expect to see any output
407− except for warnings/errors.
408− To support this kbuild defines $(kecho) which will echo out the
409− text following $(kecho) to stdout except if "make -s" is used.
410−
411− Example:
426+ This is a special rule, following the normal syntax
427+ required by make.
428+
429+ The target file depends on two prerequisite files. References
430+ to the target file are prefixed with $(obj), references
431+ to prerequisites are referenced with $(src) (because they are not
432+ generated files).
433+
434+ $(kecho)
435+ echoing information to user in a rule is often a good practice
436+ but when execution "make -s" one does not expect to see any output
437+ except for warnings/errors.
438+ To support this kbuild defines $(kecho) which will echo out the
439+ text following $(kecho) to stdout except if "make -s" is used.
440+
441+ Example::
442+
412443 #arch/blackfin/boot/Makefile
413444 $(obj)/vmImage: $(obj)/vmlinux.gz
414445 $(call if_changed,uimage)
415446 @$(kecho) 'Kernel: $@ is ready'
416447
417448
418−--- 3.11 $(CC) support functions
449+3.11 $(CC) support functions
450+----------------------------
419451
420452 The kernel may be built with several different versions of
421453 $(CC), each supporting a unique set of features and options.
@@ -425,10 +457,11 @@ more details, with real examples. · 3 unmodified lines
425457
426458 as-option
427459 as-option is used to check if $(CC) -- when used to compile
428− assembler (*.S) files -- supports the given option. An optional
460+ assembler (`*.S`) files -- supports the given option. An optional
429461 second option may be specified if the first option is not supported.
430462
431− Example:
463+ Example::
464+
432465 #arch/sh/Makefile
433466 cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
434467
@@ -437,6 +470,21 @@ more details, with real examples. · 2 unmodified lines
437470 The second argument is optional, and if supplied will be used
438471 if first argument is not supported.
439472
473+ cc-ldoption
474+ cc-ldoption is used to check if $(CC) when used to link object files
475+ supports the given option. An optional second option may be
476+ specified if first option are not supported.
477+
478+ Example::
479+
480+ #arch/x86/kernel/Makefile
481+ vsyscall-flags += $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
482+
483+ In the above example, vsyscall-flags will be assigned the option
484+ -Wl$(comma)--hash-style=sysv if it is supported by $(CC).
485+ The second argument is optional, and if supplied will be used
486+ if first argument is not supported.
487+
440488 as-instr
441489 as-instr checks if the assembler reports a specific instruction
442490 and then outputs either option1 or option2
@@ -447,7 +495,8 @@ more details, with real examples. · 4 unmodified lines
447495 cc-option is used to check if $(CC) supports a given option, and if
448496 not supported to use an optional second option.
449497
450− Example:
498+ Example::
499+
451500 #arch/x86/Makefile
452501 cflags-y += $(call cc-option,-march=pentium-mmx,-march=i586)
453502
@@ -461,7 +510,8 @@ more details, with real examples. · 7 unmodified lines
461510 cc-option-yn is used to check if gcc supports a given option
462511 and return 'y' if supported, otherwise 'n'.
463512
464− Example:
513+ Example::
514+
465515 #arch/ppc/Makefile
466516 biarch := $(call cc-option-yn, -m32)
467517 aflags-$(biarch) += -a32
@@ -479,7 +529,8 @@ more details, with real examples. · 11 unmodified lines
479529 because gcc 4.4 and later accept any unknown -Wno-* option and only
480530 warn about it if there is another warning in the source file.
481531
482− Example:
532+ Example::
533+
483534 KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
484535
485536 In the above example, -Wno-unused-but-set-variable will be added to
@@ -490,7 +541,8 @@ more details, with real examples. · 4 unmodified lines
490541 if version expression is true, or the fifth (if given) if the version
491542 expression is false.
492543
493− Example:
544+ Example::
545+
494546 #fs/reiserfs/Makefile
495547 ccflags-y := $(call cc-ifversion, -lt, 0402, -O1)
496548
@@ -515,7 +567,8 @@ more details, with real examples. · 18 unmodified lines
515567 build (host arch is different from target arch). And if CROSS_COMPILE
516568 is already set then leave it with the old value.
517569
518− Example:
570+ Example::
571+
519572 #arch/m68k/Makefile
520573 ifneq ($(SUBARCH),$(ARCH))
521574 ifeq ($(CROSS_COMPILE),)
@@ -523,7 +576,8 @@ more details, with real examples. · 1 unmodified line
523576 endif
524577 endif
525578
526−--- 3.12 $(LD) support functions
579+3.12 $(LD) support functions
580+----------------------------
527581
528582 ld-option
529583 ld-option is used to check if $(LD) supports the supplied option.
@@ -531,12 +585,14 @@ more details, with real examples. · 1 unmodified line
531585 The second argument is an optional option that can be used if the
532586 first option is not supported by $(LD).
533587
534− Example:
588+ Example::
589+
535590 #Makefile
536591 LDFLAGS_vmlinux += $(call ld-option, -X)
537592
538593
539−=== 4 Host Program support
594+4 Host Program support
595+======================
540596
541597 Kbuild supports building executables on the host for use during the
542598 compilation stage.
@@ -550,21 +606,24 @@ This can be done in two ways. Either add the dependency in a rule, · 7 unmodified lines
550606 or utilise the variable $(always).
551607 Both possibilities are described in the following.
552608
553−--- 4.1 Simple Host Program
609+4.1 Simple Host Program
610+-----------------------
554611
555612 In some cases there is a need to compile and run a program on the
556613 computer where the build is running.
557614 The following line tells kbuild that the program bin2hex shall be
558615 built on the build host.
559616
560− Example:
617+ Example::
618+
561619 hostprogs-y := bin2hex
562620
563621 Kbuild assumes in the above example that bin2hex is made from a single
564622 c-source file named bin2hex.c located in the same directory as
565623 the Makefile.
566624
567−--- 4.2 Composite Host Programs
625+4.2 Composite Host Programs
626+---------------------------
568627
569628 Host programs can be made up based on composite objects.
570629 The syntax used to define composite objects for host programs is
@@ -572,7 +631,8 @@ Both possibilities are described in the following. · 1 unmodified line
572631 $(<executable>-objs) lists all objects used to link the final
573632 executable.
574633
575− Example:
634+ Example::
635+
576636 #scripts/lxdialog/Makefile
577637 hostprogs-y := lxdialog
578638 lxdialog-objs := checklist.o lxdialog.o
@@ -580,16 +640,19 @@ Both possibilities are described in the following. · 1 unmodified line
580640 Objects with extension .o are compiled from the corresponding .c
581641 files. In the above example, checklist.c is compiled to checklist.o
582642 and lxdialog.c is compiled to lxdialog.o.
643+
583644 Finally, the two .o files are linked to the executable, lxdialog.
584645 Note: The syntax <executable>-y is not permitted for host-programs.
585646
586−--- 4.3 Using C++ for host programs
647+4.3 Using C++ for host programs
648+-------------------------------
587649
588650 kbuild offers support for host programs written in C++. This was
589651 introduced solely to support kconfig, and is not recommended
590652 for general use.
591653
592− Example:
654+ Example::
655+
593656 #scripts/kconfig/Makefile
594657 hostprogs-y := qconf
595658 qconf-cxxobjs := qconf.o
@@ -600,13 +663,15 @@ Both possibilities are described in the following. · 4 unmodified lines
600663 If qconf is composed of a mixture of .c and .cc files, then an
601664 additional line can be used to identify this.
602665
603− Example:
666+ Example::
667+
604668 #scripts/kconfig/Makefile
605669 hostprogs-y := qconf
606670 qconf-cxxobjs := qconf.o
607671 qconf-objs := check.o
608672
609−--- 4.4 Controlling compiler options for host programs
673+4.4 Controlling compiler options for host programs
674+--------------------------------------------------
610675
611676 When compiling host programs, it is possible to set specific flags.
612677 The programs will always be compiled utilising $(HOSTCC) passed
@@ -614,27 +679,31 @@ Both possibilities are described in the following. · 1 unmodified line
614679 To set flags that will take effect for all host programs created
615680 in that Makefile, use the variable HOST_EXTRACFLAGS.
616681
617− Example:
682+ Example::
683+
618684 #scripts/lxdialog/Makefile
619685 HOST_EXTRACFLAGS += -I/usr/include/ncurses
620686
621687 To set specific flags for a single file the following construction
622688 is used:
623689
624− Example:
690+ Example::
691+
625692 #arch/ppc64/boot/Makefile
626693 HOSTCFLAGS_piggyback.o := -DKERNELBASE=$(KERNELBASE)
627694
628695 It is also possible to specify additional options to the linker.
629696
630− Example:
697+ Example::
698+
631699 #scripts/kconfig/Makefile
632700 HOSTLDLIBS_qconf := -L$(QTDIR)/lib
633701
634702 When linking qconf, it will be passed the extra option
635703 "-L$(QTDIR)/lib".
636704
637−--- 4.5 When host programs are actually built
705+4.5 When host programs are actually built
706+-----------------------------------------
638707
639708 Kbuild will only build host-programs when they are referenced
640709 as a prerequisite.
@@ -642,7 +711,8 @@ Both possibilities are described in the following. · 1 unmodified line
642711
643712 (1) List the prerequisite explicitly in a special rule.
644713
645− Example:
714+ Example::
715+
646716 #drivers/pci/Makefile
647717 hostprogs-y := gen-devlist
648718 $(obj)/devlist.h: $(src)/pci.ids $(obj)/gen-devlist
@@ -653,11 +723,13 @@ Both possibilities are described in the following. · 4 unmodified lines
653723 the host programs in special rules must be prefixed with $(obj).
654724
655725 (2) Use $(always)
726+
656727 When there is no suitable special rule, and the host program
657728 shall be built when a makefile is entered, the $(always)
658729 variable shall be used.
659730
660− Example:
731+ Example::
732+
661733 #scripts/lxdialog/Makefile
662734 hostprogs-y := lxdialog
663735 always := $(hostprogs-y)
@@ -665,11 +737,13 @@ Both possibilities are described in the following. · 1 unmodified line
665737 This will tell kbuild to build lxdialog even if not referenced in
666738 any rule.
667739
668−--- 4.6 Using hostprogs-$(CONFIG_FOO)
740+4.6 Using hostprogs-$(CONFIG_FOO)
741+---------------------------------
669742
670743 A typical pattern in a Kbuild file looks like this:
671744
672− Example:
745+ Example::
746+
673747 #scripts/Makefile
674748 hostprogs-$(CONFIG_KALLSYMS) += kallsyms
675749
@@ -679,7 +753,8 @@ Both possibilities are described in the following. · 3 unmodified lines
679753 like hostprogs-y. But only hostprogs-y is recommended to be used
680754 when no CONFIG symbols are involved.
681755
682−=== 5 Kbuild clean infrastructure
756+5 Kbuild clean infrastructure
757+=============================
683758
684759 "make clean" deletes most generated files in the obj tree where the kernel
685760 is compiled. This includes generated files such as host programs.
@@ -691,7 +766,8 @@ generated by kbuild are deleted all over the kernel src tree when · 5 unmodified lines
691766
692767 Additional files can be specified in kbuild makefiles by use of $(clean-files).
693768
694− Example:
769+ Example::
770+
695771 #lib/Makefile
696772 clean-files := crc32table.h
697773
@@ -701,7 +777,8 @@ Makefile, except if prefixed with $(objtree). · 3 unmodified lines
701777
702778 To delete a directory hierarchy use:
703779
704− Example:
780+ Example::
781+
705782 #scripts/package/Makefile
706783 clean-dirs := $(objtree)/debian/
707784
@@ -711,7 +788,8 @@ subdirectories. · 3 unmodified lines
711788 To exclude certain files from make clean, use the $(no-clean-files) variable.
712789 This is only a special case used in the top level Kbuild file:
713790
714− Example:
791+ Example::
792+
715793 #Kbuild
716794 no-clean-files := $(bounds-file) $(offsets-file)
717795
@@ -719,7 +797,8 @@ Usually kbuild descends down in subdirectories due to "obj-* := dir/", · 1 unmodified line
719797 but in the architecture makefiles where the kbuild infrastructure
720798 is not sufficient this sometimes needs to be explicit.
721799
722− Example:
800+ Example::
801+
723802 #arch/x86/boot/Makefile
724803 subdir- := compressed/
725804
@@ -729,7 +808,8 @@ directory compressed/ when "make clean" is executed. · 3 unmodified lines
729808 To support the clean infrastructure in the Makefiles that build the
730809 final bootimage there is an optional target named archclean:
731810
732− Example:
811+ Example::
812+
733813 #arch/x86/Makefile
734814 archclean:
735815 $(Q)$(MAKE) $(clean)=arch/x86/boot
@@ -745,7 +825,8 @@ is not operational at that point. · 9 unmodified lines
745825 Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
746826 be visited during "make clean".
747827
748−=== 6 Architecture Makefiles
828+6 Architecture Makefiles
829+========================
749830
750831 The top level Makefile sets up the environment and does the preparation,
751832 before starting to descend down in the individual directories.
@@ -756,6 +837,7 @@ To do so, arch/$(ARCH)/Makefile sets up a number of variables and defines · 4 unmodified lines
756837 a few targets.
757838
758839 When kbuild executes, the following steps are followed (roughly):
840+
759841 1) Configuration of the kernel => produce .config
760842 2) Store kernel version in include/linux/version.h
761843 3) Updating all other prerequisites to the target prepare:
@@ -773,37 +855,45 @@ When kbuild executes, the following steps are followed (roughly): · 11 unmodified lines
773855 - Preparing initrd images and the like
774856
775857
776−--- 6.1 Set variables to tweak the build to the architecture
858+6.1 Set variables to tweak the build to the architecture
859+--------------------------------------------------------
777860
778− LDFLAGS Generic $(LD) options
861+ LDFLAGS
862+ Generic $(LD) options
779863
780864 Flags used for all invocations of the linker.
781865 Often specifying the emulation is sufficient.
782866
783− Example:
867+ Example::
868+
784869 #arch/s390/Makefile
785870 LDFLAGS := -m elf_s390
871+
786872 Note: ldflags-y can be used to further customise
787873 the flags used. See chapter 3.7.
788874
789− LDFLAGS_vmlinux Options for $(LD) when linking vmlinux
875+ LDFLAGS_vmlinux
876+ Options for $(LD) when linking vmlinux
790877
791878 LDFLAGS_vmlinux is used to specify additional flags to pass to
792879 the linker when linking the final vmlinux image.
793880 LDFLAGS_vmlinux uses the LDFLAGS_$@ support.
794881
795− Example:
882+ Example::
883+
796884 #arch/x86/Makefile
797885 LDFLAGS_vmlinux := -e stext
798886
799− OBJCOPYFLAGS objcopy flags
887+ OBJCOPYFLAGS
888+ objcopy flags
800889
801890 When $(call if_changed,objcopy) is used to translate a .o file,
802891 the flags specified in OBJCOPYFLAGS will be used.
803892 $(call if_changed,objcopy) is often used to generate raw binaries on
804893 vmlinux.
805894
806− Example:
895+ Example::
896+
807897 #arch/s390/Makefile
808898 OBJCOPYFLAGS := -O binary
809899
@@ -814,30 +904,34 @@ When kbuild executes, the following steps are followed (roughly): · 4 unmodified lines
814904 In this example, the binary $(obj)/image is a binary version of
815905 vmlinux. The usage of $(call if_changed,xxx) will be described later.
816906
817− KBUILD_AFLAGS $(AS) assembler flags
907+ KBUILD_AFLAGS
908+ $(AS) assembler flags
818909
819910 Default value - see top level Makefile
820911 Append or modify as required per architecture.
821912
822− Example:
913+ Example::
914+
823915 #arch/sparc64/Makefile
824916 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc
825917
826− KBUILD_CFLAGS $(CC) compiler flags
918+ KBUILD_CFLAGS
919+ $(CC) compiler flags
827920
828921 Default value - see top level Makefile
829922 Append or modify as required per architecture.
830923
831924 Often, the KBUILD_CFLAGS variable depends on the configuration.
832925
833− Example:
926+ Example::
927+
834928 #arch/x86/boot/compressed/Makefile
835929 cflags-$(CONFIG_X86_32) := -march=i386
836930 cflags-$(CONFIG_X86_64) := -mcmodel=small
837931 KBUILD_CFLAGS += $(cflags-y)
838932
839933 Many arch Makefiles dynamically run the target C compiler to
840− probe supported options:
934+ probe supported options::
841935
842936 #arch/x86/Makefile
843937
@@ -853,32 +947,39 @@ When kbuild executes, the following steps are followed (roughly): · 9 unmodified lines
853947 The first example utilises the trick that a config option expands
854948 to 'y' when selected.
855949
856− KBUILD_AFLAGS_KERNEL $(AS) options specific for built-in
950+ KBUILD_AFLAGS_KERNEL
951+ $(AS) options specific for built-in
857952
858953 $(KBUILD_AFLAGS_KERNEL) contains extra C compiler flags used to compile
859954 resident kernel code.
860955
861− KBUILD_AFLAGS_MODULE Options for $(AS) when building modules
956+ KBUILD_AFLAGS_MODULE
957+ Options for $(AS) when building modules
862958
863959 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
864960 are used for $(AS).
961+
865962 From commandline AFLAGS_MODULE shall be used (see kbuild.txt).
866963
867− KBUILD_CFLAGS_KERNEL $(CC) options specific for built-in
964+ KBUILD_CFLAGS_KERNEL
965+ $(CC) options specific for built-in
868966
869967 $(KBUILD_CFLAGS_KERNEL) contains extra C compiler flags used to compile
870968 resident kernel code.
871969
872− KBUILD_CFLAGS_MODULE Options for $(CC) when building modules
970+ KBUILD_CFLAGS_MODULE
971+ Options for $(CC) when building modules
873972
874973 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
875974 are used for $(CC).
876975 From commandline CFLAGS_MODULE shall be used (see kbuild.txt).
877976
878− KBUILD_LDFLAGS_MODULE Options for $(LD) when linking modules
977+ KBUILD_LDFLAGS_MODULE
978+ Options for $(LD) when linking modules
879979
880980 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
881981 used when linking modules. This is often a linker script.
982+
882983 From commandline LDFLAGS_MODULE shall be used (see kbuild.txt).
883984
884985 KBUILD_ARFLAGS Options for $(AR) when creating archives
@@ -894,7 +995,8 @@ When kbuild executes, the following steps are followed (roughly): · 9 unmodified lines
894995 means for an architecture to override the defaults.
895996
896997
897−--- 6.2 Add prerequisites to archheaders:
998+6.2 Add prerequisites to archheaders
999+------------------------------------
8981000
8991001 The archheaders: rule is used to generate header files that
9001002 may be installed into user space by "make header_install" or
@@ -907,13 +1009,15 @@ When kbuild executes, the following steps are followed (roughly): · 6 unmodified lines
9071009 architecture itself.
9081010
9091011
910−--- 6.3 Add prerequisites to archprepare:
1012+6.3 Add prerequisites to archprepare
1013+------------------------------------
9111014
9121015 The archprepare: rule is used to list prerequisites that need to be
9131016 built before starting to descend down in the subdirectories.
9141017 This is usually used for header files containing assembler constants.
9151018
916− Example:
1019+ Example::
1020+
9171021 #arch/arm/Makefile
9181022 archprepare: maketools
9191023
@@ -923,7 +1027,8 @@ When kbuild executes, the following steps are followed (roughly): · 3 unmodified lines
9231027 generating offset header files.
9241028
9251029
926−--- 6.4 List directories to visit when descending
1030+6.4 List directories to visit when descending
1031+---------------------------------------------
9271032
9281033 An arch Makefile cooperates with the top Makefile to define variables
9291034 which specify how to build the vmlinux file. Note that there is no
@@ -931,28 +1036,34 @@ When kbuild executes, the following steps are followed (roughly): · 1 unmodified line
9311036 machinery is all architecture-independent.
9321037
9331038
934− head-y, init-y, core-y, libs-y, drivers-y, net-y
1039+ head-y, init-y, core-y, libs-y, drivers-y, net-y
1040+ $(head-y) lists objects to be linked first in vmlinux.
1041+
1042+ $(libs-y) lists directories where a lib.a archive can be located.
1043+
1044+ The rest list directories where a built-in.a object file can be
1045+ located.
9351046
936− $(head-y) lists objects to be linked first in vmlinux.
937− $(libs-y) lists directories where a lib.a archive can be located.
938− The rest list directories where a built-in.a object file can be
939− located.
1047+ $(init-y) objects will be located after $(head-y).
9401048
941− $(init-y) objects will be located after $(head-y).
942− Then the rest follows in this order:
943− $(core-y), $(libs-y), $(drivers-y) and $(net-y).
1049+ Then the rest follows in this order:
9441050
945− The top level Makefile defines values for all generic directories,
946− and arch/$(ARCH)/Makefile only adds architecture-specific directories.
1051+ $(core-y), $(libs-y), $(drivers-y) and $(net-y).
1052+
1053+ The top level Makefile defines values for all generic directories,
1054+ and arch/$(ARCH)/Makefile only adds architecture-specific
1055+ directories.
1056+
1057+ Example::
9471058
948− Example:
9491059 #arch/sparc64/Makefile
9501060 core-y += arch/sparc64/kernel/
9511061 libs-y += arch/sparc64/prom/ arch/sparc64/lib/
9521062 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/
9531063
9541064
955−--- 6.5 Architecture-specific boot images
1065+6.5 Architecture-specific boot images
1066+-------------------------------------
9561067
9571068 An arch Makefile specifies goals that take the vmlinux file, compress
9581069 it, wrap it in bootstrapping code, and copy the resulting files
@@ -970,7 +1081,8 @@ When kbuild executes, the following steps are followed (roughly): · 11 unmodified lines
9701081 arch/$(ARCH)/Makefile, and use the full path when calling down
9711082 into the arch/$(ARCH)/boot/Makefile.
9721083
973− Example:
1084+ Example::
1085+
9741086 #arch/x86/Makefile
9751087 boot := arch/x86/boot
9761088 bzImage: vmlinux
@@ -983,7 +1095,8 @@ When kbuild executes, the following steps are followed (roughly): · 6 unmodified lines
9831095 but executing "make help" will list all relevant targets.
9841096 To support this, $(archhelp) must be defined.
9851097
986− Example:
1098+ Example::
1099+
9871100 #arch/x86/Makefile
9881101 define archhelp
9891102 echo '* bzImage - Image (arch/$(ARCH)/boot/bzImage)'
@@ -997,25 +1110,30 @@ When kbuild executes, the following steps are followed (roughly): · 7 unmodified lines
9971110 Add a new prerequisite to all: to select a default goal different
9981111 from vmlinux.
9991112
1000− Example:
1113+ Example::
1114+
10011115 #arch/x86/Makefile
10021116 all: bzImage
10031117
10041118 When "make" is executed without arguments, bzImage will be built.
10051119
1006−--- 6.6 Building non-kbuild targets
1120+6.6 Building non-kbuild targets
1121+-------------------------------
10071122
10081123 extra-y
1009−
10101124 extra-y specifies additional targets created in the current
1011− directory, in addition to any targets specified by obj-*.
1125+ directory, in addition to any targets specified by `obj-*`.
10121126
10131127 Listing all targets in extra-y is required for two purposes:
1128+
10141129 1) Enable kbuild to check changes in command lines
1130+
10151131 - When $(call if_changed,xxx) is used
1132+
10161133 2) kbuild knows what files to delete during "make clean"
10171134
1018− Example:
1135+ Example::
1136+
10191137 #arch/x86/kernel/Makefile
10201138 extra-y := head.o init_task.o
10211139
@@ -1023,16 +1141,17 @@ When kbuild executes, the following steps are followed (roughly): · 1 unmodified line
10231141 shall be built, but shall not be linked as part of built-in.a.
10241142
10251143
1026−--- 6.7 Commands useful for building a boot image
1144+6.7 Commands useful for building a boot image
1145+---------------------------------------------
10271146
1028− Kbuild provides a few macros that are useful when building a
1029− boot image.
1147+ Kbuild provides a few macros that are useful when building a
1148+ boot image.
10301149
10311150 if_changed
1032−
10331151 if_changed is the infrastructure used for the following commands.
10341152
1035− Usage:
1153+ Usage::
1154+
10361155 target: source(s) FORCE
10371156 $(call if_changed,ld/objcopy/gzip/...)
10381157
@@ -1050,12 +1169,16 @@ When kbuild executes, the following steps are followed (roughly): · 11 unmodified lines
10501169 Note: It is a typical mistake to forget the FORCE prerequisite.
10511170 Another common pitfall is that whitespace is sometimes
10521171 significant; for instance, the below will fail (note the extra space
1053− after the comma):
1172+ after the comma)::
1173+
10541174 target: source(s) FORCE
1055− #WRONG!# $(call if_changed, ld/objcopy/gzip/...)
10561175
1057− Note: if_changed should not be used more than once per target.
1176+ **WRONG!** $(call if_changed, ld/objcopy/gzip/...)
1177+
1178+ Note:
1179+ if_changed should not be used more than once per target.
10581180 It stores the executed command in a corresponding .cmd
1181+
10591182 file and multiple calls would result in overwrites and
10601183 unwanted results when the target is up to date and only the
10611184 tests on changed commands trigger execution of commands.
@@ -1063,7 +1186,8 @@ When kbuild executes, the following steps are followed (roughly): · 1 unmodified line
10631186 ld
10641187 Link target. Often, LDFLAGS_$@ is used to set specific options to ld.
10651188
1066− Example:
1189+ Example::
1190+
10671191 #arch/x86/boot/Makefile
10681192 LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary
10691193 LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext
@@ -1077,12 +1201,15 @@ When kbuild executes, the following steps are followed (roughly): · 7 unmodified lines
10771201 LDFLAGS_$@ syntax - one for each potential target.
10781202 $(targets) are assigned all potential targets, by which kbuild knows
10791203 the targets and will:
1204+
10801205 1) check for commandline changes
10811206 2) delete target during make clean
10821207
10831208 The ": %: %.o" part of the prerequisite is a shorthand that
10841209 frees us from listing the setup.o and bootsect.o files.
1085− Note: It is a common mistake to forget the "targets :=" assignment,
1210+
1211+ Note:
1212+ It is a common mistake to forget the "targets :=" assignment,
10861213 resulting in the target file being recompiled for no
10871214 obvious reason.
10881215
@@ -1094,7 +1221,8 @@ When kbuild executes, the following steps are followed (roughly): · 5 unmodified lines
10941221 gzip
10951222 Compress target. Use maximum compression to compress target.
10961223
1097− Example:
1224+ Example::
1225+
10981226 #arch/x86/boot/compressed/Makefile
10991227 $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE
11001228 $(call if_changed,gzip)
@@ -1105,26 +1233,30 @@ When kbuild executes, the following steps are followed (roughly): · 4 unmodified lines
11051233 in an init section in the image. Platform code *must* copy the
11061234 blob to non-init memory prior to calling unflatten_device_tree().
11071235
1108− To use this command, simply add *.dtb into obj-y or targets, or make
1109− some other target depend on %.dtb
1236+ To use this command, simply add `*.dtb` into obj-y or targets, or make
1237+ some other target depend on `%.dtb`
11101238
1111− A central rule exists to create $(obj)/%.dtb from $(src)/%.dts;
1239+ A central rule exists to create `$(obj)/%.dtb` from `$(src)/%.dts`;
11121240 architecture Makefiles do no need to explicitly write out that rule.
11131241
1114− Example:
1242+ Example::
1243+
11151244 targets += $(dtb-y)
11161245 DTC_FLAGS ?= -p 1024
11171246
1118−--- 6.8 Custom kbuild commands
1247+6.8 Custom kbuild commands
1248+--------------------------
11191249
11201250 When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand
11211251 of a command is normally displayed.
11221252 To enable this behaviour for custom commands kbuild requires
1123− two variables to be set:
1124− quiet_cmd_<command> - what shall be echoed
1125− cmd_<command> - the command to execute
1253+ two variables to be set::
1254+
1255+ quiet_cmd_<command> - what shall be echoed
1256+ cmd_<command> - the command to execute
1257+
1258+ Example::
11261259
1127− Example:
11281260 #
11291261 quiet_cmd_image = BUILD $@
11301262 cmd_image = $(obj)/tools/build $(BUILDFLAGS) \
@@ -1135,9 +1267,9 @@ When kbuild executes, the following steps are followed (roughly): · 4 unmodified lines
11351267 $(call if_changed,image)
11361268 @echo 'Kernel: $@ is ready'
11371269
1138− When updating the $(obj)/bzImage target, the line
1270+ When updating the $(obj)/bzImage target, the line:
11391271
1140− BUILD arch/x86/boot/bzImage
1272+ BUILD arch/x86/boot/bzImage
11411273
11421274 will be displayed with "make KBUILD_VERBOSE=0".
11431275
@@ -1148,9 +1280,10 @@ When kbuild executes, the following steps are followed (roughly): · 4 unmodified lines
11481280 arch/$(ARCH)/kernel/vmlinux.lds is used.
11491281 The script is a preprocessed variant of the file vmlinux.lds.S
11501282 located in the same directory.
1151− kbuild knows .lds files and includes a rule *lds.S -> *lds.
1283+ kbuild knows .lds files and includes a rule `*lds.S` -> `*lds`.
1284+
1285+ Example::
11521286
1153− Example:
11541287 #arch/x86/kernel/Makefile
11551288 always := vmlinux.lds
11561289
@@ -1162,17 +1295,19 @@ When kbuild executes, the following steps are followed (roughly): · 5 unmodified lines
11621295 The assignment to $(CPPFLAGS_vmlinux.lds) tells kbuild to use the
11631296 specified options when building the target vmlinux.lds.
11641297
1165− When building the *.lds target, kbuild uses the variables:
1166− KBUILD_CPPFLAGS : Set in top-level Makefile
1167− cppflags-y : May be set in the kbuild makefile
1168− CPPFLAGS_$(@F) : Target-specific flags.
1169− Note that the full filename is used in this
1170− assignment.
1298+ When building the `*.lds` target, kbuild uses the variables::
1299+
1300+ KBUILD_CPPFLAGS : Set in top-level Makefile
1301+ cppflags-y : May be set in the kbuild makefile
1302+ CPPFLAGS_$(@F) : Target-specific flags.
1303+ Note that the full filename is used in this
1304+ assignment.
11711305
1172− The kbuild infrastructure for *lds files is used in several
1306+ The kbuild infrastructure for `*lds` files is used in several
11731307 architecture-specific files.
11741308
1175−--- 6.10 Generic header files
1309+6.10 Generic header files
1310+-------------------------
11761311
11771312 The directory include/asm-generic contains the header files
11781313 that may be shared between individual architectures.
@@ -1180,7 +1315,8 @@ When kbuild executes, the following steps are followed (roughly): · 1 unmodified line
11801315 to list the file in the Kbuild file.
11811316 See "7.2 generic-y" for further info on syntax etc.
11821317
1183−--- 6.11 Post-link pass
1318+6.11 Post-link pass
1319+-------------------
11841320
11851321 If the file arch/xxx/Makefile.postlink exists, this makefile
11861322 will be invoked for post-link objects (vmlinux and modules.ko)
@@ -1195,15 +1331,17 @@ When kbuild executes, the following steps are followed (roughly): · 8 unmodified lines
11951331 For example, powerpc uses this to check relocation sanity of
11961332 the linked vmlinux file.
11971333
1198−=== 7 Kbuild syntax for exported headers
1334+7 Kbuild syntax for exported headers
1335+------------------------------------
11991336
12001337 The kernel includes a set of headers that is exported to userspace.
12011338 Many headers can be exported as-is but other headers require a
12021339 minimal pre-processing before they are ready for user-space.
12031340 The pre-processing does:
1341+
12041342 - drop kernel-specific annotations
12051343 - drop include of compiler.h
1206−- drop all sections that are kernel internal (guarded by ifdef __KERNEL__)
1344+- drop all sections that are kernel internal (guarded by `ifdef __KERNEL__`)
12071345
12081346 All headers under include/uapi/, include/generated/uapi/,
12091347 arch/<arch>/include/uapi/ and arch/<arch>/include/generated/uapi/
@@ -1213,40 +1351,45 @@ A Kbuild file may be defined under arch/<arch>/include/uapi/asm/ and · 3 unmodified lines
12131351 arch/<arch>/include/asm/ to list asm files coming from asm-generic.
12141352 See subsequent chapter for the syntax of the Kbuild file.
12151353
1216−--- 7.1 no-export-headers
1354+7.1 no-export-headers
1355+---------------------
12171356
12181357 no-export-headers is essentially used by include/uapi/linux/Kbuild to
12191358 avoid exporting specific headers (e.g. kvm.h) on architectures that do
12201359 not support it. It should be avoided as much as possible.
12211360
1222−--- 7.2 generic-y
1361+7.2 generic-y
1362+-------------
12231363
12241364 If an architecture uses a verbatim copy of a header from
12251365 include/asm-generic then this is listed in the file
12261366 arch/$(ARCH)/include/asm/Kbuild like this:
12271367
1228− Example:
1368+ Example::
1369+
12291370 #arch/x86/include/asm/Kbuild
12301371 generic-y += termios.h
12311372 generic-y += rtc.h
12321373
12331374 During the prepare phase of the build a wrapper include
1234− file is generated in the directory:
1375+ file is generated in the directory::
12351376
12361377 arch/$(ARCH)/include/generated/asm
12371378
12381379 When a header is exported where the architecture uses
12391380 the generic header a similar wrapper is generated as part
1240− of the set of exported headers in the directory:
1381+ of the set of exported headers in the directory::
12411382
12421383 usr/include/asm
12431384
12441385 The generated wrapper will in both cases look like the following:
12451386
1246− Example: termios.h
1387+ Example: termios.h::
1388+
12471389 #include <asm-generic/termios.h>
12481390
1249−--- 7.3 generated-y
1391+7.3 generated-y
1392+---------------
12501393
12511394 If an architecture generates other header files alongside generic-y
12521395 wrappers, generated-y specifies them.
@@ -1254,11 +1397,13 @@ See subsequent chapter for the syntax of the Kbuild file. · 1 unmodified line
12541397 This prevents them being treated as stale asm-generic wrappers and
12551398 removed.
12561399
1257− Example:
1400+ Example::
1401+
12581402 #arch/x86/include/asm/Kbuild
12591403 generated-y += syscalls_32.h
12601404
1261−--- 7.4 mandatory-y
1405+7.4 mandatory-y
1406+---------------
12621407
12631408 mandatory-y is essentially used by include/(uapi/)asm-generic/Kbuild
12641409 to define the minimum set of ASM headers that all architectures must have.
@@ -1270,12 +1415,12 @@ See subsequent chapter for the syntax of the Kbuild file. · 5 unmodified lines
12701415 The convention is to list one subdir per line and
12711416 preferably in alphabetic order.
12721417
1273−=== 8 Kbuild Variables
1418+8 Kbuild Variables
1419+==================
12741420
12751421 The top Makefile exports the following variables:
12761422
12771423 VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION
1278−
12791424 These variables define the current kernel version. A few arch
12801425 Makefiles actually use these values directly; they should use
12811426 $(KERNELRELEASE) instead.
@@ -1289,32 +1434,28 @@ The top Makefile exports the following variables: · 7 unmodified lines
12891434 such as "-pre4", and is often blank.
12901435
12911436 KERNELRELEASE
1292−
12931437 $(KERNELRELEASE) is a single string such as "2.4.0-pre4", suitable
12941438 for constructing installation directory names or showing in
12951439 version strings. Some arch Makefiles use it for this purpose.
12961440
12971441 ARCH
1298−
12991442 This variable defines the target architecture, such as "i386",
13001443 "arm", or "sparc". Some kbuild Makefiles test $(ARCH) to
13011444 determine which files to compile.
13021445
13031446 By default, the top Makefile sets $(ARCH) to be the same as the
13041447 host system architecture. For a cross build, a user may
1305− override the value of $(ARCH) on the command line:
1448+ override the value of $(ARCH) on the command line::
13061449
13071450 make ARCH=m68k ...
13081451
13091452
13101453 INSTALL_PATH
1311−
13121454 This variable defines a place for the arch Makefiles to install
13131455 the resident kernel image and System.map file.
13141456 Use this for architecture-specific install targets.
13151457
13161458 INSTALL_MOD_PATH, MODLIB
1317−
13181459 $(INSTALL_MOD_PATH) specifies a prefix to $(MODLIB) for module
13191460 installation. This variable is not defined in the Makefile but
13201461 may be passed in by the user if desired.
@@ -1325,7 +1466,6 @@ The top Makefile exports the following variables: · 4 unmodified lines
13251466 override this value on the command line if desired.
13261467
13271468 INSTALL_MOD_STRIP
1328−
13291469 If this variable is specified, it will cause modules to be stripped
13301470 after they are installed. If INSTALL_MOD_STRIP is '1', then the
13311471 default option --strip-debug will be used. Otherwise, the
@@ -1333,7 +1473,8 @@ The top Makefile exports the following variables: · 1 unmodified line
13331473 command.
13341474
13351475
1336−=== 9 Makefile language
1476+9 Makefile language
1477+===================
13371478
13381479 The kernel Makefiles are designed to be run with GNU Make. The Makefiles
13391480 use only the documented features of GNU Make, but they do use many
@@ -1352,18 +1493,17 @@ time the left-hand side is used. · 12 unmodified lines
13521493 There are some cases where "=" is appropriate. Usually, though, ":="
13531494 is the right choice.
13541495
1355−=== 10 Credits
1496+10 Credits
1497+==========
13561498
1357−Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1358−Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1359−Updates by Sam Ravnborg <sam@ravnborg.org>
1360−Language QA by Jan Engelhardt <jengelh@gmx.de>
1499+- Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
1500+- Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
1501+- Updates by Sam Ravnborg <sam@ravnborg.org>
1502+- Language QA by Jan Engelhardt <jengelh@gmx.de>
13611503
1362−=== 11 TODO
1504+11 TODO
1505+=======
13631506
13641507 - Describe how kbuild supports shipped files with _shipped.
13651508 - Generating offset header files.
13661509 - Add more variables to section 7?
1367−
1368−
1369−
Documentation/kbuild/modules.rstrenamed from Documentation/kbuild/modules.txt+100−70
@@ -1,8 +1,10 @@
1+=========================
12 Building External Modules
3+=========================
24
35 This document describes how to build an out-of-tree kernel module.
46
5−=== Table of Contents
7+.. Table of Contents
68
79 === 1 Introduction
810 === 2 How to Build External Modules
@@ -31,7 +33,8 @@ This document describes how to build an out-of-tree kernel module. · 22 unmodified lines
3133
3234
3335
34−=== 1. Introduction
36+1. Introduction
37+===============
3538
3639 "kbuild" is the build system used by the Linux kernel. Modules must use
3740 kbuild to stay compatible with changes in the build infrastructure and
@@ -48,7 +51,8 @@ easily accomplished, and a complete example will be presented in · 10 unmodified lines
4851 section 3.
4952
5053
51−=== 2. How to Build External Modules
54+2. How to Build External Modules
55+================================
5256
5357 To build external modules, you must have a prebuilt kernel available
5458 that contains the configuration and header files used in the build.
@@ -65,25 +69,27 @@ NOTE: "modules_prepare" will not build Module.symvers even if · 10 unmodified lines
6569 CONFIG_MODVERSIONS is set; therefore, a full kernel build needs to be
6670 executed to make module versioning work.
6771
68−--- 2.1 Command Syntax
72+2.1 Command Syntax
73+==================
6974
70− The command to build an external module is:
75+ The command to build an external module is::
7176
7277 $ make -C <path_to_kernel_src> M=$PWD
7378
7479 The kbuild system knows that an external module is being built
7580 due to the "M=<dir>" option given in the command.
7681
77− To build against the running kernel use:
82+ To build against the running kernel use::
7883
7984 $ make -C /lib/modules/`uname -r`/build M=$PWD
8085
8186 Then to install the module(s) just built, add the target
82− "modules_install" to the command:
87+ "modules_install" to the command::
8388
8489 $ make -C /lib/modules/`uname -r`/build M=$PWD modules_install
8590
86−--- 2.2 Options
91+2.2 Options
92+===========
8793
8894 ($KDIR refers to the path of the kernel source directory.)
8995
@@ -100,7 +106,8 @@ executed to make module versioning work. · 10 unmodified lines
100106 directory where the external module (kbuild file) is
101107 located.
102108
103−--- 2.3 Targets
109+2.3 Targets
110+===========
104111
105112 When building an external module, only a subset of the "make"
106113 targets are available.
@@ -130,26 +137,29 @@ executed to make module versioning work. · 23 unmodified lines
130137 help
131138 List the available targets for external modules.
132139
133−--- 2.4 Building Separate Files
140+2.4 Building Separate Files
141+===========================
134142
135143 It is possible to build single files that are part of a module.
136144 This works equally well for the kernel, a module, and even for
137145 external modules.
138146
139− Example (The module foo.ko, consist of bar.o and baz.o):
147+ Example (The module foo.ko, consist of bar.o and baz.o)::
148+
140149 make -C $KDIR M=$PWD bar.lst
141150 make -C $KDIR M=$PWD baz.o
142151 make -C $KDIR M=$PWD foo.ko
143152 make -C $KDIR M=$PWD ./
144153
145154
146−=== 3. Creating a Kbuild File for an External Module
155+3. Creating a Kbuild File for an External Module
156+================================================
147157
148158 In the last section we saw the command to build a module for the
149159 running kernel. The module is not actually built, however, because a
150160 build file is required. Contained in this file will be the name of
151161 the module(s) being built, along with the list of requisite source
152−files. The file may be as simple as a single line:
162+files. The file may be as simple as a single line::
153163
154164 obj-m := <module_name>.o
155165
@@ -157,15 +167,15 @@ The kbuild system will build <module_name>.o from <module_name>.c, · 1 unmodified line
157167 and, after linking, will result in the kernel module <module_name>.ko.
158168 The above line can be put in either a "Kbuild" file or a "Makefile."
159169 When the module is built from multiple sources, an additional line is
160−needed listing the files:
170+needed listing the files::
161171
162172 <module_name>-y := <src1>.o <src2>.o ...
163173
164174 NOTE: Further documentation describing the syntax used by kbuild is
165−located in Documentation/kbuild/makefiles.txt.
175+located in Documentation/kbuild/makefiles.rst.
166176
167177 The examples below demonstrate how to create a build file for the
168−module 8123.ko, which is built from the following files:
178+module 8123.ko, which is built from the following files::
169179
170180 8123_if.c
171181 8123_if.h
@@ -181,7 +191,8 @@ module 8123.ko, which is built from the following files: · 9 unmodified lines
181191 but should be filtered out from kbuild due to possible name
182192 clashes.
183193
184− Example 1:
194+ Example 1::
195+
185196 --> filename: Makefile
186197 ifneq ($(KERNELRELEASE),)
187198 # kbuild part of makefile
@@ -209,14 +220,16 @@ module 8123.ko, which is built from the following files: · 21 unmodified lines
209220 line; the second pass is by the kbuild system, which is
210221 initiated by the parameterized "make" in the default target.
211222
212−--- 3.2 Separate Kbuild File and Makefile
223+3.2 Separate Kbuild File and Makefile
224+-------------------------------------
213225
214226 In newer versions of the kernel, kbuild will first look for a
215227 file named "Kbuild," and only if that is not found, will it
216228 then look for a makefile. Utilizing a "Kbuild" file allows us
217229 to split up the makefile from example 1 into two files:
218230
219− Example 2:
231+ Example 2::
232+
220233 --> filename: Kbuild
221234 obj-m := 8123.o
222235 8123-y := 8123_if.o 8123_pci.o 8123_bin.o
@@ -238,7 +251,8 @@ module 8123.ko, which is built from the following files: · 15 unmodified lines
238251
239252 The next example shows a backward compatible version.
240253
241− Example 3:
254+ Example 3::
255+
242256 --> filename: Kbuild
243257 obj-m := 8123.o
244258 8123-y := 8123_if.o 8123_pci.o 8123_bin.o
@@ -266,7 +280,8 @@ module 8123.ko, which is built from the following files: · 21 unmodified lines
266280 makefiles, to be used when the "make" and kbuild parts are
267281 split into separate files.
268282
269−--- 3.3 Binary Blobs
283+3.3 Binary Blobs
284+----------------
270285
271286 Some external modules need to include an object file as a blob.
272287 kbuild has support for this, but requires the blob file to be
@@ -277,7 +292,7 @@ module 8123.ko, which is built from the following files: · 4 unmodified lines
277292
278293 Throughout this section, 8123_bin.o_shipped has been used to
279294 build the kernel module 8123.ko; it has been included as
280− 8123_bin.o.
295+ 8123_bin.o::
281296
282297 8123-y := 8123_if.o 8123_pci.o 8123_bin.o
283298
@@ -285,11 +300,12 @@ module 8123.ko, which is built from the following files: · 1 unmodified line
285300 files and the binary file, kbuild will pick up different rules
286301 when creating the object file for the module.
287302
288−--- 3.4 Building Multiple Modules
303+3.4 Building Multiple Modules
304+=============================
289305
290306 kbuild supports building multiple modules with a single build
291307 file. For example, if you wanted to build two modules, foo.ko
292− and bar.ko, the kbuild lines would be:
308+ and bar.ko, the kbuild lines would be::
293309
294310 obj-m := foo.o bar.o
295311 foo-y := <foo_srcs>
@@ -298,7 +314,8 @@ module 8123.ko, which is built from the following files: · 2 unmodified lines
298314 It is that simple!
299315
300316
301−=== 4. Include Files
317+4. Include Files
318+================
302319
303320 Within the kernel, header files are kept in standard locations
304321 according to the following rule:
@@ -310,22 +327,25 @@ according to the following rule: · 5 unmodified lines
310327 of the kernel that are located in different directories, then
311328 the file is placed in include/linux/.
312329
313− NOTE: There are two notable exceptions to this rule: larger
314− subsystems have their own directory under include/, such as
315− include/scsi; and architecture specific headers are located
316− under arch/$(ARCH)/include/.
330+ NOTE:
331+ There are two notable exceptions to this rule: larger
332+ subsystems have their own directory under include/, such as
333+ include/scsi; and architecture specific headers are located
334+ under arch/$(ARCH)/include/.
317335
318−--- 4.1 Kernel Includes
336+4.1 Kernel Includes
337+-------------------
319338
320339 To include a header file located under include/linux/, simply
321− use:
340+ use::
322341
323342 #include <linux/module.h>
324343
325344 kbuild will add options to "gcc" so the relevant directories
326345 are searched.
327346
328−--- 4.2 Single Subdirectory
347+4.2 Single Subdirectory
348+-----------------------
329349
330350 External modules tend to place header files in a separate
331351 include/ directory where their source is located, although this
@@ -334,7 +354,7 @@ according to the following rule: · 2 unmodified lines
334354
335355 Using the example from section 3, if we moved 8123_if.h to a
336356 subdirectory named include, the resulting kbuild file would
337− look like:
357+ look like::
338358
339359 --> filename: Kbuild
340360 obj-m := 8123.o
@@ -346,23 +366,24 @@ according to the following rule: · 5 unmodified lines
346366 the path. This is a limitation of kbuild: there must be no
347367 space present.
348368
349−--- 4.3 Several Subdirectories
369+4.3 Several Subdirectories
370+--------------------------
350371
351372 kbuild can handle files that are spread over several directories.
352− Consider the following example:
353−
354− .
355− |__ src
356− | |__ complex_main.c
357− | |__ hal
358− | |__ hardwareif.c
359− | |__ include
360− | |__ hardwareif.h
361− |__ include
362− |__ complex.h
373+ Consider the following example::
374+
375+ .
376+ |__ src
377+ | |__ complex_main.c
378+ | |__ hal
379+ | |__ hardwareif.c
380+ | |__ include
381+ | |__ hardwareif.h
382+ |__ include
383+ |__ complex.h
363384
364385 To build the module complex.ko, we then need the following
365− kbuild file:
386+ kbuild file::
366387
367388 --> filename: Kbuild
368389 obj-m := complex.o
@@ -385,7 +406,8 @@ according to the following rule: · 16 unmodified lines
385406 file is located.
386407
387408
388−=== 5. Module Installation
409+5. Module Installation
410+======================
389411
390412 Modules which are included in the kernel are installed in the
391413 directory:
@@ -396,11 +418,12 @@ And external modules are installed in: · 4 unmodified lines
396418
397419 /lib/modules/$(KERNELRELEASE)/extra/
398420
399−--- 5.1 INSTALL_MOD_PATH
421+5.1 INSTALL_MOD_PATH
422+--------------------
400423
401424 Above are the default directories but as always some level of
402425 customization is possible. A prefix can be added to the
403− installation path using the variable INSTALL_MOD_PATH:
426+ installation path using the variable INSTALL_MOD_PATH::
404427
405428 $ make INSTALL_MOD_PATH=/frodo modules_install
406429 => Install dir: /frodo/lib/modules/$(KERNELRELEASE)/kernel/
@@ -410,20 +433,22 @@ And external modules are installed in: · 3 unmodified lines
410433 calling "make." This has effect when installing both in-tree
411434 and out-of-tree modules.
412435
413−--- 5.2 INSTALL_MOD_DIR
436+5.2 INSTALL_MOD_DIR
437+-------------------
414438
415439 External modules are by default installed to a directory under
416440 /lib/modules/$(KERNELRELEASE)/extra/, but you may wish to
417441 locate modules for a specific functionality in a separate
418442 directory. For this purpose, use INSTALL_MOD_DIR to specify an
419− alternative name to "extra."
443+ alternative name to "extra."::
420444
421445 $ make INSTALL_MOD_DIR=gandalf -C $KDIR \
422446 M=$PWD modules_install
423447 => Install dir: /lib/modules/$(KERNELRELEASE)/gandalf/
424448
425449
426−=== 6. Module Versioning
450+6. Module Versioning
451+====================
427452
428453 Module versioning is enabled by the CONFIG_MODVERSIONS tag, and is used
429454 as a simple ABI consistency check. A CRC value of the full prototype
@@ -435,14 +460,16 @@ module. · 5 unmodified lines
435460 Module.symvers contains a list of all exported symbols from a kernel
436461 build.
437462
438−--- 6.1 Symbols From the Kernel (vmlinux + modules)
463+6.1 Symbols From the Kernel (vmlinux + modules)
464+-----------------------------------------------
439465
440466 During a kernel build, a file named Module.symvers will be
441467 generated. Module.symvers contains all exported symbols from
442468 the kernel and compiled modules. For each symbol, the
443469 corresponding CRC value is also stored.
444470
445− The syntax of the Module.symvers file is:
471+ The syntax of the Module.symvers file is::
472+
446473 <CRC> <Symbol> <module>
447474
448475 0x2d036834 scsi_remove_host drivers/scsi/scsi_mod
@@ -451,10 +478,12 @@ build. · 2 unmodified lines
451478 would read 0x00000000.
452479
453480 Module.symvers serves two purposes:
481+
454482 1) It lists all exported symbols from vmlinux and all modules.
455483 2) It lists the CRC if CONFIG_MODVERSIONS is enabled.
456484
457−--- 6.2 Symbols and External Modules
485+6.2 Symbols and External Modules
486+--------------------------------
458487
459488 When building an external module, the build system needs access
460489 to the symbols from the kernel to check if all external symbols
@@ -481,17 +510,17 @@ build. · 20 unmodified lines
481510 foo.ko needs symbols from bar.ko, you can use a
482511 common top-level kbuild file so both modules are
483512 compiled in the same build. Consider the following
484− directory layout:
513+ directory layout::
485514
486− ./foo/ <= contains foo.ko
487− ./bar/ <= contains bar.ko
515+ ./foo/ <= contains foo.ko
516+ ./bar/ <= contains bar.ko
488517
489− The top-level kbuild file would then look like:
518+ The top-level kbuild file would then look like::
490519
491− #./Kbuild (or ./Makefile):
492− obj-y := foo/ bar/
520+ #./Kbuild (or ./Makefile):
521+ obj-y := foo/ bar/
493522
494− And executing
523+ And executing::
495524
496525 $ make -C $KDIR M=$PWD
497526
@@ -518,14 +547,16 @@ build. · 20 unmodified lines
518547 initialization of its symbol tables.
519548
520549
521−=== 7. Tips & Tricks
550+7. Tips & Tricks
551+================
522552
523−--- 7.1 Testing for CONFIG_FOO_BAR
553+7.1 Testing for CONFIG_FOO_BAR
554+------------------------------
524555
525− Modules often need to check for certain CONFIG_ options to
556+ Modules often need to check for certain `CONFIG_` options to
526557 decide if a specific feature is included in the module. In
527− kbuild this is done by referencing the CONFIG_ variable
528− directly.
558+ kbuild this is done by referencing the `CONFIG_` variable
559+ directly::
529560
530561 #fs/ext2/Makefile
531562 obj-$(CONFIG_EXT2_FS) += ext2.o
@@ -534,8 +565,7 @@ build. · 2 unmodified lines
534565 ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o
535566
536567 External modules have traditionally used "grep" to check for
537− specific CONFIG_ settings directly in .config. This usage is
568+ specific `CONFIG_` settings directly in .config. This usage is
538569 broken. As introduced before, external modules should use
539570 kbuild for building and can therefore use the same methods as
540− in-tree modules when testing for CONFIG_ definitions.
541−
571+ in-tree modules when testing for `CONFIG_` definitions.
Documentation/kernel-hacking/hacking.rst+2−2
@@ -718,7 +718,7 @@ make a neat patch, there's administrative work to be done: · 717 unmodified lines
718718 - Usually you want a configuration option for your kernel hack. Edit
719719 ``Kconfig`` in the appropriate directory. The Config language is
720720 simple to use by cut and paste, and there's complete documentation in
721− ``Documentation/kbuild/kconfig-language.txt``.
721+ ``Documentation/kbuild/kconfig-language.rst``.
722722
723723 In your description of the option, make sure you address both the
724724 expert user and the user who knows nothing about your feature.
@@ -728,7 +728,7 @@ make a neat patch, there's administrative work to be done: · 3 unmodified lines
728728
729729 - Edit the ``Makefile``: the CONFIG variables are exported here so you
730730 can usually just add a "obj-$(CONFIG_xxx) += xxx.o" line. The syntax
731− is documented in ``Documentation/kbuild/makefiles.txt``.
731+ is documented in ``Documentation/kbuild/makefiles.rst``.
732732
733733 - Put yourself in ``CREDITS`` if you've done something noteworthy,
734734 usually beyond a single file (your name should be at the top of the
Documentation/process/coding-style.rst+1−1
@@ -686,7 +686,7 @@ filesystems) should advertise this prominently in their prompt string:: · 685 unmodified lines
686686 ...
687687
688688 For full documentation on the configuration files, see the file
689−Documentation/kbuild/kconfig-language.txt.
689+Documentation/kbuild/kconfig-language.rst.
690690
691691
692692 11) Data structures
Documentation/process/submit-checklist.rst+1−1
@@ -39,7 +39,7 @@ and elsewhere regarding submitting Linux kernel patches. · 38 unmodified lines
3939
4040 6) Any new or modified ``CONFIG`` options do not muck up the config menu and
4141 default to off unless they meet the exception criteria documented in
42− ``Documentation/kbuild/kconfig-language.txt`` Menu attributes: default value.
42+ ``Documentation/kbuild/kconfig-language.rst`` Menu attributes: default value.
4343
4444 7) All new ``Kconfig`` options have help text.
4545
Documentation/translations/it_IT/kernel-hacking/hacking.rst+2−2
@@ -755,7 +755,7 @@ anche per avere patch pulite, c'è del lavoro amministrativo da fare: · 754 unmodified lines
755755 - Solitamente vorrete un'opzione di configurazione per la vostra modifica
756756 al kernel. Modificate ``Kconfig`` nella cartella giusta. Il linguaggio
757757 Config è facile con copia ed incolla, e c'è una completa documentazione
758− nel file ``Documentation/kbuild/kconfig-language.txt``.
758+ nel file ``Documentation/kbuild/kconfig-language.rst``.
759759
760760 Nella descrizione della vostra opzione, assicuratevi di parlare sia agli
761761 utenti esperti sia agli utente che non sanno nulla del vostro lavoro.
@@ -767,7 +767,7 @@ anche per avere patch pulite, c'è del lavoro amministrativo da fare: · 5 unmodified lines
767767 - Modificate il file ``Makefile``: le variabili CONFIG sono esportate qui,
768768 quindi potete solitamente aggiungere una riga come la seguete
769769 "obj-$(CONFIG_xxx) += xxx.o". La sintassi è documentata nel file
770− ``Documentation/kbuild/makefiles.txt``.
770+ ``Documentation/kbuild/makefiles.rst``.
771771
772772 - Aggiungete voi stessi in ``CREDITS`` se avete fatto qualcosa di notevole,
773773 solitamente qualcosa che supera il singolo file (comunque il vostro nome
Documentation/translations/it_IT/process/coding-style.rst+1−1
@@ -696,7 +696,7 @@ nella stringa di titolo:: · 695 unmodified lines
696696 ...
697697
698698 Per la documentazione completa sui file di configurazione, consultate
699−il documento Documentation/kbuild/kconfig-language.txt
699+il documento Documentation/kbuild/kconfig-language.rst
700700
701701
702702 11) Strutture dati
Documentation/translations/it_IT/process/submit-checklist.rst+1−1
@@ -43,7 +43,7 @@ sottomissione delle patch, in particolare · 42 unmodified lines
4343
4444 6) Le opzioni ``CONFIG``, nuove o modificate, non scombussolano il menu
4545 di configurazione e sono preimpostate come disabilitate a meno che non
46− soddisfino i criteri descritti in ``Documentation/kbuild/kconfig-language.txt``
46+ soddisfino i criteri descritti in ``Documentation/kbuild/kconfig-language.rst``
4747 alla punto "Voci di menu: valori predefiniti".
4848
4949 7) Tutte le nuove opzioni ``Kconfig`` hanno un messaggio di aiuto.
Documentation/translations/zh_CN/process/coding-style.rst+1−1
@@ -599,7 +599,7 @@ Documentation/doc-guide/ 和 scripts/kernel-doc 以获得详细信息。 · 598 unmodified lines
599599 depends on ADFS_FS
600600 ...
601601
602−要查看配置文件的完整文档,请看 Documentation/kbuild/kconfig-language.txt。
602+要查看配置文件的完整文档,请看 Documentation/kbuild/kconfig-language.rst。
603603
604604
605605 11) 数据结构
Documentation/translations/zh_CN/process/submit-checklist.rst+1−1
@@ -38,7 +38,7 @@ Linux内核补丁提交清单 · 37 unmodified lines
3838 违规行为。
3939
4040 6) 任何新的或修改过的 ``CONFIG`` 选项都不会弄脏配置菜单,并默认为关闭,除非
41− 它们符合 ``Documentation/kbuild/kconfig-language.txt`` 中记录的异常条件,
41+ 它们符合 ``Documentation/kbuild/kconfig-language.rst`` 中记录的异常条件,
4242 菜单属性:默认值.
4343
4444 7) 所有新的 ``kconfig`` 选项都有帮助文本。
Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66 mainmenu "Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration"
77
arch/arc/plat-eznps/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66
77 menuconfig ARC_PLAT_EZNPS
arch/c6x/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66
77 config C6X
arch/microblaze/Kconfig.debug+1−1
@@ -1,6 +1,6 @@
11 # SPDX-License-Identifier: GPL-2.0-only
22 # For a description of the syntax of this configuration file,
3−# see Documentation/kbuild/kconfig-language.txt.
3+# see Documentation/kbuild/kconfig-language.rst.
44
55 config TRACE_IRQFLAGS_SUPPORT
66 def_bool y
arch/microblaze/Kconfig.platform+1−1
@@ -1,6 +1,6 @@
11 # SPDX-License-Identifier: GPL-2.0-only
22 # For a description of the syntax of this configuration file,
3−# see Documentation/kbuild/kconfig-language.txt.
3+# see Documentation/kbuild/kconfig-language.rst.
44 #
55 # Platform selection Kconfig menu for MicroBlaze targets
66 #
arch/nds32/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0-only
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66
77 config NDS32
arch/openrisc/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66
77 config OPENRISC
arch/powerpc/sysdev/Kconfig+1−1
@@ -1,6 +1,6 @@
11 # SPDX-License-Identifier: GPL-2.0
22 # For a description of the syntax of this configuration file,
3−# see Documentation/kbuild/kconfig-language.txt.
3+# see Documentation/kbuild/kconfig-language.rst.
44 #
55
66 config PPC4xx_PCI_EXPRESS
arch/riscv/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0-only
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66
77 config 64BIT
drivers/auxdisplay/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66 # Auxiliary display drivers configuration.
77 #
drivers/firmware/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0-only
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66
77 menu "Firmware Drivers"
drivers/mtd/devices/Kconfig+1−1
@@ -48,7 +48,7 @@ config MTD_MS02NV · 47 unmodified lines
4848
4949 If you want to compile this driver as a module ( = code which can be
5050 inserted in and removed from the running kernel whenever you want),
51− say M here and read <file:Documentation/kbuild/modules.txt>.
51+ say M here and read <file:Documentation/kbuild/modules.rst>.
5252 The module will be called ms02-nv.
5353
5454 config MTD_DATAFLASH
drivers/net/ethernet/smsc/Kconfig+3−3
@@ -49,7 +49,7 @@ config SMC91X · 48 unmodified lines
4949 This driver is also available as a module ( = code which can be
5050 inserted in and removed from the running kernel whenever you want).
5151 The module will be called smc91x. If you want to compile it as a
52− module, say M here and read <file:Documentation/kbuild/modules.txt>.
52+ module, say M here and read <file:Documentation/kbuild/modules.rst>.
5353
5454 config PCMCIA_SMC91C92
5555 tristate "SMC 91Cxx PCMCIA support"
@@ -86,7 +86,7 @@ config SMC911X · 30 unmodified lines
8686
8787 This driver is also available as a module. The module will be
8888 called smc911x. If you want to compile it as a module, say M
89− here and read <file:Documentation/kbuild/modules.txt>
89+ here and read <file:Documentation/kbuild/modules.rst>
9090
9191 config SMSC911X
9292 tristate "SMSC LAN911x/LAN921x families embedded ethernet support"
@@ -121,6 +121,6 @@ config SMSC9420 · 28 unmodified lines
121121
122122 This driver is also available as a module. The module will be
123123 called smsc9420. If you want to compile it as a module, say M
124− here and read <file:Documentation/kbuild/modules.txt>
124+ here and read <file:Documentation/kbuild/modules.rst>
125125
126126 endif # NET_VENDOR_SMSC
drivers/net/wireless/intel/iwlegacy/Kconfig+2−2
@@ -32,7 +32,7 @@ config IWL4965 · 31 unmodified lines
3232
3333 If you want to compile the driver as a module ( = code which can be
3434 inserted in and removed from the running kernel whenever you want),
35− say M here and read <file:Documentation/kbuild/modules.txt>. The
35+ say M here and read <file:Documentation/kbuild/modules.rst>. The
3636 module will be called iwl4965.
3737
3838 config IWL3945
@@ -58,7 +58,7 @@ config IWL3945 · 19 unmodified lines
5858
5959 If you want to compile the driver as a module ( = code which can be
6060 inserted in and removed from the running kernel whenever you want),
61− say M here and read <file:Documentation/kbuild/modules.txt>. The
61+ say M here and read <file:Documentation/kbuild/modules.rst>. The
6262 module will be called iwl3945.
6363
6464 menu "iwl3945 / iwl4965 Debugging Options"
drivers/net/wireless/intel/iwlwifi/Kconfig+1−1
@@ -40,7 +40,7 @@ config IWLWIFI · 39 unmodified lines
4040
4141 If you want to compile the driver as a module ( = code which can be
4242 inserted in and removed from the running kernel whenever you want),
43− say M here and read <file:Documentation/kbuild/modules.txt>. The
43+ say M here and read <file:Documentation/kbuild/modules.rst>. The
4444 module will be called iwlwifi.
4545
4646 if IWLWIFI
drivers/parport/Kconfig+1−1
@@ -1,7 +1,7 @@
11 # SPDX-License-Identifier: GPL-2.0-only
22 #
33 # For a description of the syntax of this configuration file,
4−# see Documentation/kbuild/kconfig-language.txt.
4+# see Documentation/kbuild/kconfig-language.rst.
55 #
66 # Parport configuration.
77 #
drivers/scsi/Kconfig+2−2
@@ -183,7 +183,7 @@ config CHR_DEV_SCH · 182 unmodified lines
183183
184184 If you want to compile this as a module ( = code which can be
185185 inserted in and removed from the running kernel whenever you want),
186− say M here and read <file:Documentation/kbuild/modules.txt> and
186+ say M here and read <file:Documentation/kbuild/modules.rst> and
187187 <file:Documentation/scsi/scsi.txt>. The module will be called ch.o.
188188 If unsure, say N.
189189
@@ -1474,7 +1474,7 @@ config ZFCP · 1284 unmodified lines
14741474
14751475 This driver is also available as a module. This module will be
14761476 called zfcp. If you want to compile it as a module, say M here
1477− and read <file:Documentation/kbuild/modules.txt>.
1477+ and read <file:Documentation/kbuild/modules.rst>.
14781478
14791479 config SCSI_PMCRAID
14801480 tristate "PMC SIERRA Linux MaxRAID adapter support"
drivers/staging/sm750fb/Kconfig+1−1
@@ -12,4 +12,4 @@ config FB_SM750 · 11 unmodified lines
1212
1313 This driver is also available as a module. The module will be
1414 called sm750fb. If you want to compile it as a module, say M
15− here and read <file:Documentation/kbuild/modules.txt>.
15+ here and read <file:Documentation/kbuild/modules.rst>.
drivers/usb/misc/Kconfig+2−2
@@ -16,7 +16,7 @@ config USB_EMI62 · 15 unmodified lines
1616 This code is also available as a module ( = code which can be
1717 inserted in and removed from the running kernel whenever you want).
1818 The module will be called audio. If you want to compile it as a
19− module, say M here and read <file:Documentation/kbuild/modules.txt>.
19+ module, say M here and read <file:Documentation/kbuild/modules.rst>.
2020
2121 config USB_EMI26
2222 tristate "EMI 2|6 USB Audio interface support"
@@ -67,7 +67,7 @@ config USB_LEGOTOWER · 44 unmodified lines
6767 inserted in and removed from the running kernel whenever you want).
6868 The module will be called legousbtower. If you want to compile it as
6969 a module, say M here and read
70− <file:Documentation/kbuild/modules.txt>.
70+ <file:Documentation/kbuild/modules.rst>.
7171
7272 config USB_LCD
7373 tristate "USB LCD driver support"
drivers/video/fbdev/Kconfig+7−7
@@ -289,7 +289,7 @@ config FB_ARMCLCD · 288 unmodified lines
289289
290290 If you want to compile this as a module (=code which can be
291291 inserted into and removed from the running kernel), say M
292− here and read <file:Documentation/kbuild/modules.txt>. The module
292+ here and read <file:Documentation/kbuild/modules.rst>. The module
293293 will be called amba-clcd.
294294
295295 config FB_ACORN
@@ -1752,7 +1752,7 @@ config FB_PXA · 1456 unmodified lines
17521752 This driver is also available as a module ( = code which can be
17531753 inserted and removed from the running kernel whenever you want). The
17541754 module will be called pxafb. If you want to compile it as a module,
1755− say M here and read <file:Documentation/kbuild/modules.txt>.
1755+ say M here and read <file:Documentation/kbuild/modules.rst>.
17561756
17571757 If unsure, say N.
17581758
@@ -1833,7 +1833,7 @@ config FB_W100 · 74 unmodified lines
18331833 This driver is also available as a module ( = code which can be
18341834 inserted and removed from the running kernel whenever you want). The
18351835 module will be called w100fb. If you want to compile it as a module,
1836− say M here and read <file:Documentation/kbuild/modules.txt>.
1836+ say M here and read <file:Documentation/kbuild/modules.rst>.
18371837
18381838 If unsure, say N.
18391839
@@ -1862,7 +1862,7 @@ config FB_TMIO · 22 unmodified lines
18621862 This driver is also available as a module ( = code which can be
18631863 inserted and removed from the running kernel whenever you want). The
18641864 module will be called tmiofb. If you want to compile it as a module,
1865− say M here and read <file:Documentation/kbuild/modules.txt>.
1865+ say M here and read <file:Documentation/kbuild/modules.rst>.
18661866
18671867 If unsure, say N.
18681868
@@ -1908,7 +1908,7 @@ config FB_S3C2410 · 39 unmodified lines
19081908 This driver is also available as a module ( = code which can be
19091909 inserted and removed from the running kernel whenever you want). The
19101910 module will be called s3c2410fb. If you want to compile it as a module,
1911− say M here and read <file:Documentation/kbuild/modules.txt>.
1911+ say M here and read <file:Documentation/kbuild/modules.rst>.
19121912
19131913 If unsure, say N.
19141914 config FB_S3C2410_DEBUG
@@ -1945,7 +1945,7 @@ config FB_SM501 · 30 unmodified lines
19451945 This driver is also available as a module ( = code which can be
19461946 inserted and removed from the running kernel whenever you want). The
19471947 module will be called sm501fb. If you want to compile it as a module,
1948− say M here and read <file:Documentation/kbuild/modules.txt>.
1948+ say M here and read <file:Documentation/kbuild/modules.rst>.
19491949
19501950 If unsure, say N.
19511951
@@ -2288,7 +2288,7 @@ config FB_SM712 · 336 unmodified lines
22882288
22892289 This driver is also available as a module. The module will be
22902290 called sm712fb. If you want to compile it as a module, say M
2291− here and read <file:Documentation/kbuild/modules.txt>.
2291+ here and read <file:Documentation/kbuild/modules.rst>.
22922292
22932293 source "drivers/video/fbdev/omap/Kconfig"
22942294 source "drivers/video/fbdev/omap2/Kconfig"
net/bridge/netfilter/Kconfig+1−1
@@ -114,7 +114,7 @@ config BRIDGE_EBT_LIMIT · 113 unmodified lines
114114 equivalent of the iptables limit match.
115115
116116 If you want to compile it as a module, say M here and read
117− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
117+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
118118
119119 config BRIDGE_EBT_MARK
120120 tristate "ebt: mark filter support"
net/ipv4/netfilter/Kconfig+1−1
@@ -308,7 +308,7 @@ config IP_NF_RAW · 307 unmodified lines
308308 and OUTPUT chains.
309309
310310 If you want to compile it as a module, say M here and read
311− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
311+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
312312
313313 # security table for MAC policy
314314 config IP_NF_SECURITY
net/ipv6/netfilter/Kconfig+1−1
@@ -241,7 +241,7 @@ config IP6_NF_RAW · 240 unmodified lines
241241 and OUTPUT chains.
242242
243243 If you want to compile it as a module, say M here and read
244− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
244+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
245245
246246 # security table for MAC policy
247247 config IP6_NF_SECURITY
net/netfilter/Kconfig+8−8
@@ -1056,7 +1056,7 @@ config NETFILTER_XT_TARGET_TRACE · 1055 unmodified lines
10561056 the tables, chains, rules.
10571057
10581058 If you want to compile it as a module, say M here and read
1059− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1059+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
10601060
10611061 config NETFILTER_XT_TARGET_SECMARK
10621062 tristate '"SECMARK" target support'
@@ -1115,7 +1115,7 @@ config NETFILTER_XT_MATCH_ADDRTYPE · 52 unmodified lines
11151115 eg. UNICAST, LOCAL, BROADCAST, ...
11161116
11171117 If you want to compile it as a module, say M here and read
1118− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1118+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
11191119
11201120 config NETFILTER_XT_MATCH_BPF
11211121 tristate '"bpf" match support'
@@ -1160,7 +1160,7 @@ config NETFILTER_XT_MATCH_COMMENT · 38 unmodified lines
11601160 comments in your iptables ruleset.
11611161
11621162 If you want to compile it as a module, say M here and read
1163− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1163+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
11641164
11651165 config NETFILTER_XT_MATCH_CONNBYTES
11661166 tristate '"connbytes" per-connection counter match support'
@@ -1171,7 +1171,7 @@ config NETFILTER_XT_MATCH_CONNBYTES · 4 unmodified lines
11711171 number of bytes and/or packets for each direction within a connection.
11721172
11731173 If you want to compile it as a module, say M here and read
1174− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1174+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
11751175
11761176 config NETFILTER_XT_MATCH_CONNLABEL
11771177 tristate '"connlabel" match support'
@@ -1237,7 +1237,7 @@ config NETFILTER_XT_MATCH_DCCP · 59 unmodified lines
12371237 and DCCP flags.
12381238
12391239 If you want to compile it as a module, say M here and read
1240− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1240+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
12411241
12421242 config NETFILTER_XT_MATCH_DEVGROUP
12431243 tristate '"devgroup" match support'
@@ -1473,7 +1473,7 @@ config NETFILTER_XT_MATCH_QUOTA · 229 unmodified lines
14731473 byte counter.
14741474
14751475 If you want to compile it as a module, say M here and read
1476− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1476+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
14771477
14781478 config NETFILTER_XT_MATCH_RATEEST
14791479 tristate '"rateest" match support'
@@ -1497,7 +1497,7 @@ config NETFILTER_XT_MATCH_REALM · 17 unmodified lines
14971497 in tc world.
14981498
14991499 If you want to compile it as a module, say M here and read
1500− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1500+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
15011501
15021502 config NETFILTER_XT_MATCH_RECENT
15031503 tristate '"recent" match support'
@@ -1519,7 +1519,7 @@ config NETFILTER_XT_MATCH_SCTP · 15 unmodified lines
15191519 and SCTP chunk types.
15201520
15211521 If you want to compile it as a module, say M here and read
1522− <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
1522+ <file:Documentation/kbuild/modules.rst>. If unsure, say `N'.
15231523
15241524 config NETFILTER_XT_MATCH_SOCKET
15251525 tristate '"socket" match support'
net/tipc/Kconfig+1−1
@@ -17,7 +17,7 @@ menuconfig TIPC · 16 unmodified lines
1717 This protocol support is also available as a module ( = code which
1818 can be inserted in and removed from the running kernel whenever you
1919 want). The module will be called tipc. If you want to compile it
20− as a module, say M here and read <file:Documentation/kbuild/modules.txt>.
20+ as a module, say M here and read <file:Documentation/kbuild/modules.rst>.
2121
2222 If in doubt, say N.
2323
scripts/Kbuild.include+2−2
@@ -68,7 +68,7 @@ endef · 67 unmodified lines
6868
6969 ######
7070 # gcc support functions
71−# See documentation in Documentation/kbuild/makefiles.txt
71+# See documentation in Documentation/kbuild/makefiles.rst
7272
7373 # cc-cross-prefix
7474 # Usage: CROSS_COMPILE := $(call cc-cross-prefix, m68k-linux-gnu- m68k-linux-)
@@ -210,7 +210,7 @@ objectify = $(foreach o,$(1),$(if $(filter /%,$(o)),$(o),$(obj)/$(o))) · 135 unmodified lines
210210 # if_changed_dep - as if_changed, but uses fixdep to reveal dependencies
211211 # including used config symbols
212212 # if_changed_rule - as if_changed but execute rule instead
213−# See Documentation/kbuild/makefiles.txt for more info
213+# See Documentation/kbuild/makefiles.rst for more info
214214
215215 ifneq ($(KBUILD_NOCMDDEP),1)
216216 # Check if both arguments are the same including their order. Result is empty
scripts/Makefile.host+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
66 #
77 # Both C and C++ are supported, but preferred language is C for such utilities.
88 #
9−# Sample syntax (see Documentation/kbuild/makefiles.txt for reference)
9+# Sample syntax (see Documentation/kbuild/makefiles.rst for reference)
1010 # hostprogs-y := bin2hex
1111 # Will compile bin2hex.c and create an executable named bin2hex
1212 #
scripts/kconfig/symbol.c+1−1
@@ -1114,7 +1114,7 @@ static void sym_check_print_recursive(struct symbol *last_sym) · 1113 unmodified lines
11141114 }
11151115
11161116 fprintf(stderr,
1117− "For a resolution refer to Documentation/kbuild/kconfig-language.txt\n"
1117+ "For a resolution refer to Documentation/kbuild/kconfig-language.rst\n"
11181118 "subsection \"Kconfig recursive dependency limitations\"\n"
11191119 "\n");
11201120
scripts/kconfig/tests/err_recursive_dep/expected_stderr+7−7
@@ -1,38 +1,38 @@
11 Kconfig:11:error: recursive dependency detected!
22 Kconfig:11: symbol B is selected by B
3−For a resolution refer to Documentation/kbuild/kconfig-language.txt
3+For a resolution refer to Documentation/kbuild/kconfig-language.rst
44 subsection "Kconfig recursive dependency limitations"
55
66 Kconfig:5:error: recursive dependency detected!
77 Kconfig:5: symbol A depends on A
8−For a resolution refer to Documentation/kbuild/kconfig-language.txt
8+For a resolution refer to Documentation/kbuild/kconfig-language.rst
99 subsection "Kconfig recursive dependency limitations"
1010
1111 Kconfig:17:error: recursive dependency detected!
1212 Kconfig:17: symbol C1 depends on C2
1313 Kconfig:21: symbol C2 depends on C1
14−For a resolution refer to Documentation/kbuild/kconfig-language.txt
14+For a resolution refer to Documentation/kbuild/kconfig-language.rst
1515 subsection "Kconfig recursive dependency limitations"
1616
1717 Kconfig:32:error: recursive dependency detected!
1818 Kconfig:32: symbol D2 is selected by D1
1919 Kconfig:27: symbol D1 depends on D2
20−For a resolution refer to Documentation/kbuild/kconfig-language.txt
20+For a resolution refer to Documentation/kbuild/kconfig-language.rst
2121 subsection "Kconfig recursive dependency limitations"
2222
2323 Kconfig:37:error: recursive dependency detected!
2424 Kconfig:37: symbol E1 depends on E2
2525 Kconfig:42: symbol E2 is implied by E1
26−For a resolution refer to Documentation/kbuild/kconfig-language.txt
26+For a resolution refer to Documentation/kbuild/kconfig-language.rst
2727 subsection "Kconfig recursive dependency limitations"
2828
2929 Kconfig:60:error: recursive dependency detected!
3030 Kconfig:60: symbol G depends on G
31−For a resolution refer to Documentation/kbuild/kconfig-language.txt
31+For a resolution refer to Documentation/kbuild/kconfig-language.rst
3232 subsection "Kconfig recursive dependency limitations"
3333
3434 Kconfig:51:error: recursive dependency detected!
3535 Kconfig:51: symbol F2 depends on F1
3636 Kconfig:49: symbol F1 default value contains F2
37−For a resolution refer to Documentation/kbuild/kconfig-language.txt
37+For a resolution refer to Documentation/kbuild/kconfig-language.rst
3838 subsection "Kconfig recursive dependency limitations"
sound/oss/dmasound/Kconfig+3−3
@@ -11,7 +11,7 @@ config DMASOUND_ATARI · 10 unmodified lines
1111 This driver is also available as a module ( = code which can be
1212 inserted in and removed from the running kernel whenever you
1313 want). If you want to compile it as a module, say M here and read
14− <file:Documentation/kbuild/modules.txt>.
14+ <file:Documentation/kbuild/modules.rst>.
1515
1616 config DMASOUND_PAULA
1717 tristate "Amiga DMA sound support"
@@ -25,7 +25,7 @@ config DMASOUND_PAULA · 7 unmodified lines
2525 This driver is also available as a module ( = code which can be
2626 inserted in and removed from the running kernel whenever you
2727 want). If you want to compile it as a module, say M here and read
28− <file:Documentation/kbuild/modules.txt>.
28+ <file:Documentation/kbuild/modules.rst>.
2929
3030 config DMASOUND_Q40
3131 tristate "Q40 sound support"
@@ -39,7 +39,7 @@ config DMASOUND_Q40 · 7 unmodified lines
3939 This driver is also available as a module ( = code which can be
4040 inserted in and removed from the running kernel whenever you
4141 want). If you want to compile it as a module, say M here and read
42− <file:Documentation/kbuild/modules.txt>.
42+ <file:Documentation/kbuild/modules.rst>.
4343
4444 config DMASOUND
4545 tristate

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t