xref: /openbmc/linux/init/Kconfig (revision 1da177e4)
1*1da177e4SLinus Torvaldsmenu "Code maturity level options"
2*1da177e4SLinus Torvalds
3*1da177e4SLinus Torvaldsconfig EXPERIMENTAL
4*1da177e4SLinus Torvalds	bool "Prompt for development and/or incomplete code/drivers"
5*1da177e4SLinus Torvalds	---help---
6*1da177e4SLinus Torvalds	  Some of the various things that Linux supports (such as network
7*1da177e4SLinus Torvalds	  drivers, file systems, network protocols, etc.) can be in a state
8*1da177e4SLinus Torvalds	  of development where the functionality, stability, or the level of
9*1da177e4SLinus Torvalds	  testing is not yet high enough for general use. This is usually
10*1da177e4SLinus Torvalds	  known as the "alpha-test" phase among developers. If a feature is
11*1da177e4SLinus Torvalds	  currently in alpha-test, then the developers usually discourage
12*1da177e4SLinus Torvalds	  uninformed widespread use of this feature by the general public to
13*1da177e4SLinus Torvalds	  avoid "Why doesn't this work?" type mail messages. However, active
14*1da177e4SLinus Torvalds	  testing and use of these systems is welcomed. Just be aware that it
15*1da177e4SLinus Torvalds	  may not meet the normal level of reliability or it may fail to work
16*1da177e4SLinus Torvalds	  in some special cases. Detailed bug reports from people familiar
17*1da177e4SLinus Torvalds	  with the kernel internals are usually welcomed by the developers
18*1da177e4SLinus Torvalds	  (before submitting bug reports, please read the documents
19*1da177e4SLinus Torvalds	  <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>,
20*1da177e4SLinus Torvalds	  <file:Documentation/BUG-HUNTING>, and
21*1da177e4SLinus Torvalds	  <file:Documentation/oops-tracing.txt> in the kernel source).
22*1da177e4SLinus Torvalds
23*1da177e4SLinus Torvalds	  This option will also make obsoleted drivers available. These are
24*1da177e4SLinus Torvalds	  drivers that have been replaced by something else, and/or are
25*1da177e4SLinus Torvalds	  scheduled to be removed in a future kernel release.
26*1da177e4SLinus Torvalds
27*1da177e4SLinus Torvalds	  Unless you intend to help test and develop a feature or driver that
28*1da177e4SLinus Torvalds	  falls into this category, or you have a situation that requires
29*1da177e4SLinus Torvalds	  using these features, you should probably say N here, which will
30*1da177e4SLinus Torvalds	  cause the configurator to present you with fewer choices. If
31*1da177e4SLinus Torvalds	  you say Y here, you will be offered the choice of using features or
32*1da177e4SLinus Torvalds	  drivers that are currently considered to be in the alpha-test phase.
33*1da177e4SLinus Torvalds
34*1da177e4SLinus Torvaldsconfig CLEAN_COMPILE
35*1da177e4SLinus Torvalds	bool "Select only drivers expected to compile cleanly" if EXPERIMENTAL
36*1da177e4SLinus Torvalds	default y
37*1da177e4SLinus Torvalds	help
38*1da177e4SLinus Torvalds	  Select this option if you don't even want to see the option
39*1da177e4SLinus Torvalds	  to configure known-broken drivers.
40*1da177e4SLinus Torvalds
41*1da177e4SLinus Torvalds	  If unsure, say Y
42*1da177e4SLinus Torvalds
43*1da177e4SLinus Torvaldsconfig BROKEN
44*1da177e4SLinus Torvalds	bool
45*1da177e4SLinus Torvalds	depends on !CLEAN_COMPILE
46*1da177e4SLinus Torvalds	default y
47*1da177e4SLinus Torvalds
48*1da177e4SLinus Torvaldsconfig BROKEN_ON_SMP
49*1da177e4SLinus Torvalds	bool
50*1da177e4SLinus Torvalds	depends on BROKEN || !SMP
51*1da177e4SLinus Torvalds	default y
52*1da177e4SLinus Torvalds
53*1da177e4SLinus Torvaldsconfig LOCK_KERNEL
54*1da177e4SLinus Torvalds	bool
55*1da177e4SLinus Torvalds	depends on SMP || PREEMPT
56*1da177e4SLinus Torvalds	default y
57*1da177e4SLinus Torvalds
58*1da177e4SLinus Torvaldsconfig INIT_ENV_ARG_LIMIT
59*1da177e4SLinus Torvalds	int
60*1da177e4SLinus Torvalds	default 32 if !USERMODE
61*1da177e4SLinus Torvalds	default 128 if USERMODE
62*1da177e4SLinus Torvalds	help
63*1da177e4SLinus Torvalds	  This is the value of the two limits on the number of argument and of
64*1da177e4SLinus Torvalds	  env.var passed to init from the kernel command line.
65*1da177e4SLinus Torvalds
66*1da177e4SLinus Torvaldsendmenu
67*1da177e4SLinus Torvalds
68*1da177e4SLinus Torvaldsmenu "General setup"
69*1da177e4SLinus Torvalds
70*1da177e4SLinus Torvaldsconfig LOCALVERSION
71*1da177e4SLinus Torvalds	string "Local version - append to kernel release"
72*1da177e4SLinus Torvalds	help
73*1da177e4SLinus Torvalds	  Append an extra string to the end of your kernel version.
74*1da177e4SLinus Torvalds	  This will show up when you type uname, for example.
75*1da177e4SLinus Torvalds	  The string you set here will be appended after the contents of
76*1da177e4SLinus Torvalds	  any files with a filename matching localversion* in your
77*1da177e4SLinus Torvalds	  object and source tree, in that order.  Your total string can
78*1da177e4SLinus Torvalds	  be a maximum of 64 characters.
79*1da177e4SLinus Torvalds
80*1da177e4SLinus Torvaldsconfig SWAP
81*1da177e4SLinus Torvalds	bool "Support for paging of anonymous memory (swap)"
82*1da177e4SLinus Torvalds	depends on MMU
83*1da177e4SLinus Torvalds	default y
84*1da177e4SLinus Torvalds	help
85*1da177e4SLinus Torvalds	  This option allows you to choose whether you want to have support
86*1da177e4SLinus Torvalds	  for socalled swap devices or swap files in your kernel that are
87*1da177e4SLinus Torvalds	  used to provide more virtual memory than the actual RAM present
88*1da177e4SLinus Torvalds	  in your computer.  If unsure say Y.
89*1da177e4SLinus Torvalds
90*1da177e4SLinus Torvaldsconfig SYSVIPC
91*1da177e4SLinus Torvalds	bool "System V IPC"
92*1da177e4SLinus Torvalds	depends on MMU
93*1da177e4SLinus Torvalds	---help---
94*1da177e4SLinus Torvalds	  Inter Process Communication is a suite of library functions and
95*1da177e4SLinus Torvalds	  system calls which let processes (running programs) synchronize and
96*1da177e4SLinus Torvalds	  exchange information. It is generally considered to be a good thing,
97*1da177e4SLinus Torvalds	  and some programs won't run unless you say Y here. In particular, if
98*1da177e4SLinus Torvalds	  you want to run the DOS emulator dosemu under Linux (read the
99*1da177e4SLinus Torvalds	  DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
100*1da177e4SLinus Torvalds	  you'll need to say Y here.
101*1da177e4SLinus Torvalds
102*1da177e4SLinus Torvalds	  You can find documentation about IPC with "info ipc" and also in
103*1da177e4SLinus Torvalds	  section 6.4 of the Linux Programmer's Guide, available from
104*1da177e4SLinus Torvalds	  <http://www.tldp.org/guides.html>.
105*1da177e4SLinus Torvalds
106*1da177e4SLinus Torvaldsconfig POSIX_MQUEUE
107*1da177e4SLinus Torvalds	bool "POSIX Message Queues"
108*1da177e4SLinus Torvalds	depends on NET && EXPERIMENTAL
109*1da177e4SLinus Torvalds	---help---
110*1da177e4SLinus Torvalds	  POSIX variant of message queues is a part of IPC. In POSIX message
111*1da177e4SLinus Torvalds	  queues every message has a priority which decides about succession
112*1da177e4SLinus Torvalds	  of receiving it by a process. If you want to compile and run
113*1da177e4SLinus Torvalds	  programs written e.g. for Solaris with use of its POSIX message
114*1da177e4SLinus Torvalds	  queues (functions mq_*) say Y here. To use this feature you will
115*1da177e4SLinus Torvalds	  also need mqueue library, available from
116*1da177e4SLinus Torvalds	  <http://www.mat.uni.torun.pl/~wrona/posix_ipc/>
117*1da177e4SLinus Torvalds
118*1da177e4SLinus Torvalds	  POSIX message queues are visible as a filesystem called 'mqueue'
119*1da177e4SLinus Torvalds	  and can be mounted somewhere if you want to do filesystem
120*1da177e4SLinus Torvalds	  operations on message queues.
121*1da177e4SLinus Torvalds
122*1da177e4SLinus Torvalds	  If unsure, say Y.
123*1da177e4SLinus Torvalds
124*1da177e4SLinus Torvaldsconfig BSD_PROCESS_ACCT
125*1da177e4SLinus Torvalds	bool "BSD Process Accounting"
126*1da177e4SLinus Torvalds	help
127*1da177e4SLinus Torvalds	  If you say Y here, a user level program will be able to instruct the
128*1da177e4SLinus Torvalds	  kernel (via a special system call) to write process accounting
129*1da177e4SLinus Torvalds	  information to a file: whenever a process exits, information about
130*1da177e4SLinus Torvalds	  that process will be appended to the file by the kernel.  The
131*1da177e4SLinus Torvalds	  information includes things such as creation time, owning user,
132*1da177e4SLinus Torvalds	  command name, memory usage, controlling terminal etc. (the complete
133*1da177e4SLinus Torvalds	  list is in the struct acct in <file:include/linux/acct.h>).  It is
134*1da177e4SLinus Torvalds	  up to the user level program to do useful things with this
135*1da177e4SLinus Torvalds	  information.  This is generally a good idea, so say Y.
136*1da177e4SLinus Torvalds
137*1da177e4SLinus Torvaldsconfig BSD_PROCESS_ACCT_V3
138*1da177e4SLinus Torvalds	bool "BSD Process Accounting version 3 file format"
139*1da177e4SLinus Torvalds	depends on BSD_PROCESS_ACCT
140*1da177e4SLinus Torvalds	default n
141*1da177e4SLinus Torvalds	help
142*1da177e4SLinus Torvalds	  If you say Y here, the process accounting information is written
143*1da177e4SLinus Torvalds	  in a new file format that also logs the process IDs of each
144*1da177e4SLinus Torvalds	  process and it's parent. Note that this file format is incompatible
145*1da177e4SLinus Torvalds	  with previous v0/v1/v2 file formats, so you will need updated tools
146*1da177e4SLinus Torvalds	  for processing it. A preliminary version of these tools is available
147*1da177e4SLinus Torvalds	  at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
148*1da177e4SLinus Torvalds
149*1da177e4SLinus Torvaldsconfig SYSCTL
150*1da177e4SLinus Torvalds	bool "Sysctl support"
151*1da177e4SLinus Torvalds	---help---
152*1da177e4SLinus Torvalds	  The sysctl interface provides a means of dynamically changing
153*1da177e4SLinus Torvalds	  certain kernel parameters and variables on the fly without requiring
154*1da177e4SLinus Torvalds	  a recompile of the kernel or reboot of the system.  The primary
155*1da177e4SLinus Torvalds	  interface consists of a system call, but if you say Y to "/proc
156*1da177e4SLinus Torvalds	  file system support", a tree of modifiable sysctl entries will be
157*1da177e4SLinus Torvalds	  generated beneath the /proc/sys directory. They are explained in the
158*1da177e4SLinus Torvalds	  files in <file:Documentation/sysctl/>.  Note that enabling this
159*1da177e4SLinus Torvalds	  option will enlarge the kernel by at least 8 KB.
160*1da177e4SLinus Torvalds
161*1da177e4SLinus Torvalds	  As it is generally a good thing, you should say Y here unless
162*1da177e4SLinus Torvalds	  building a kernel for install/rescue disks or your system is very
163*1da177e4SLinus Torvalds	  limited in memory.
164*1da177e4SLinus Torvalds
165*1da177e4SLinus Torvaldsconfig AUDIT
166*1da177e4SLinus Torvalds	bool "Auditing support"
167*1da177e4SLinus Torvalds	default y if SECURITY_SELINUX
168*1da177e4SLinus Torvalds	help
169*1da177e4SLinus Torvalds	  Enable auditing infrastructure that can be used with another
170*1da177e4SLinus Torvalds	  kernel subsystem, such as SELinux (which requires this for
171*1da177e4SLinus Torvalds	  logging of avc messages output).  Does not do system-call
172*1da177e4SLinus Torvalds	  auditing without CONFIG_AUDITSYSCALL.
173*1da177e4SLinus Torvalds
174*1da177e4SLinus Torvaldsconfig AUDITSYSCALL
175*1da177e4SLinus Torvalds	bool "Enable system-call auditing support"
176*1da177e4SLinus Torvalds	depends on AUDIT && (X86 || PPC64 || ARCH_S390 || IA64)
177*1da177e4SLinus Torvalds	default y if SECURITY_SELINUX
178*1da177e4SLinus Torvalds	help
179*1da177e4SLinus Torvalds	  Enable low-overhead system-call auditing infrastructure that
180*1da177e4SLinus Torvalds	  can be used independently or with another kernel subsystem,
181*1da177e4SLinus Torvalds	  such as SELinux.
182*1da177e4SLinus Torvalds
183*1da177e4SLinus Torvaldsconfig HOTPLUG
184*1da177e4SLinus Torvalds	bool "Support for hot-pluggable devices" if !ARCH_S390
185*1da177e4SLinus Torvalds	default ARCH_S390
186*1da177e4SLinus Torvalds	help
187*1da177e4SLinus Torvalds	  This option is provided for the case where no in-kernel-tree
188*1da177e4SLinus Torvalds	  modules require HOTPLUG functionality, but a module built
189*1da177e4SLinus Torvalds	  outside the kernel tree does. Such modules require Y here.
190*1da177e4SLinus Torvalds
191*1da177e4SLinus Torvaldsconfig KOBJECT_UEVENT
192*1da177e4SLinus Torvalds	bool "Kernel Userspace Events"
193*1da177e4SLinus Torvalds	depends on NET
194*1da177e4SLinus Torvalds	default y
195*1da177e4SLinus Torvalds	help
196*1da177e4SLinus Torvalds	  This option enables the kernel userspace event layer, which is a
197*1da177e4SLinus Torvalds	  simple mechanism for kernel-to-user communication over a netlink
198*1da177e4SLinus Torvalds	  socket.
199*1da177e4SLinus Torvalds	  The goal of the kernel userspace events layer is to provide a simple
200*1da177e4SLinus Torvalds	  and efficient events system, that notifies userspace about kobject
201*1da177e4SLinus Torvalds	  state changes. This will enable applications to just listen for
202*1da177e4SLinus Torvalds	  events instead of polling system devices and files.
203*1da177e4SLinus Torvalds	  Hotplug events (kobject addition and removal) are also available on
204*1da177e4SLinus Torvalds	  the netlink socket in addition to the execution of /sbin/hotplug if
205*1da177e4SLinus Torvalds	  CONFIG_HOTPLUG is enabled.
206*1da177e4SLinus Torvalds
207*1da177e4SLinus Torvalds	  Say Y, unless you are building a system requiring minimal memory
208*1da177e4SLinus Torvalds	  consumption.
209*1da177e4SLinus Torvalds
210*1da177e4SLinus Torvaldsconfig IKCONFIG
211*1da177e4SLinus Torvalds	bool "Kernel .config support"
212*1da177e4SLinus Torvalds	---help---
213*1da177e4SLinus Torvalds	  This option enables the complete Linux kernel ".config" file
214*1da177e4SLinus Torvalds	  contents to be saved in the kernel. It provides documentation
215*1da177e4SLinus Torvalds	  of which kernel options are used in a running kernel or in an
216*1da177e4SLinus Torvalds	  on-disk kernel.  This information can be extracted from the kernel
217*1da177e4SLinus Torvalds	  image file with the script scripts/extract-ikconfig and used as
218*1da177e4SLinus Torvalds	  input to rebuild the current kernel or to build another kernel.
219*1da177e4SLinus Torvalds	  It can also be extracted from a running kernel by reading
220*1da177e4SLinus Torvalds	  /proc/config.gz if enabled (below).
221*1da177e4SLinus Torvalds
222*1da177e4SLinus Torvaldsconfig IKCONFIG_PROC
223*1da177e4SLinus Torvalds	bool "Enable access to .config through /proc/config.gz"
224*1da177e4SLinus Torvalds	depends on IKCONFIG && PROC_FS
225*1da177e4SLinus Torvalds	---help---
226*1da177e4SLinus Torvalds	  This option enables access to the kernel configuration file
227*1da177e4SLinus Torvalds	  through /proc/config.gz.
228*1da177e4SLinus Torvalds
229*1da177e4SLinus Torvaldsconfig CPUSETS
230*1da177e4SLinus Torvalds	bool "Cpuset support"
231*1da177e4SLinus Torvalds	depends on SMP
232*1da177e4SLinus Torvalds	help
233*1da177e4SLinus Torvalds	  This options will let you create and manage CPUSET's which
234*1da177e4SLinus Torvalds	  allow dynamically partitioning a system into sets of CPUs and
235*1da177e4SLinus Torvalds	  Memory Nodes and assigning tasks to run only within those sets.
236*1da177e4SLinus Torvalds	  This is primarily useful on large SMP or NUMA systems.
237*1da177e4SLinus Torvalds
238*1da177e4SLinus Torvalds	  Say N if unsure.
239*1da177e4SLinus Torvalds
240*1da177e4SLinus Torvaldsmenuconfig EMBEDDED
241*1da177e4SLinus Torvalds	bool "Configure standard kernel features (for small systems)"
242*1da177e4SLinus Torvalds	help
243*1da177e4SLinus Torvalds	  This option allows certain base kernel options and settings
244*1da177e4SLinus Torvalds          to be disabled or tweaked. This is for specialized
245*1da177e4SLinus Torvalds          environments which can tolerate a "non-standard" kernel.
246*1da177e4SLinus Torvalds          Only use this if you really know what you are doing.
247*1da177e4SLinus Torvalds
248*1da177e4SLinus Torvaldsconfig KALLSYMS
249*1da177e4SLinus Torvalds	 bool "Load all symbols for debugging/kksymoops" if EMBEDDED
250*1da177e4SLinus Torvalds	 default y
251*1da177e4SLinus Torvalds	 help
252*1da177e4SLinus Torvalds	   Say Y here to let the kernel print out symbolic crash information and
253*1da177e4SLinus Torvalds	   symbolic stack backtraces. This increases the size of the kernel
254*1da177e4SLinus Torvalds	   somewhat, as all symbols have to be loaded into the kernel image.
255*1da177e4SLinus Torvalds
256*1da177e4SLinus Torvaldsconfig KALLSYMS_ALL
257*1da177e4SLinus Torvalds	bool "Include all symbols in kallsyms"
258*1da177e4SLinus Torvalds	depends on DEBUG_KERNEL && KALLSYMS
259*1da177e4SLinus Torvalds	help
260*1da177e4SLinus Torvalds	   Normally kallsyms only contains the symbols of functions, for nicer
261*1da177e4SLinus Torvalds	   OOPS messages.  Some debuggers can use kallsyms for other
262*1da177e4SLinus Torvalds	   symbols too: say Y here to include all symbols, and you
263*1da177e4SLinus Torvalds	   don't care about adding 300k to the size of your kernel.
264*1da177e4SLinus Torvalds
265*1da177e4SLinus Torvalds	   Say N.
266*1da177e4SLinus Torvalds
267*1da177e4SLinus Torvaldsconfig KALLSYMS_EXTRA_PASS
268*1da177e4SLinus Torvalds	bool "Do an extra kallsyms pass"
269*1da177e4SLinus Torvalds	depends on KALLSYMS
270*1da177e4SLinus Torvalds	help
271*1da177e4SLinus Torvalds	   If kallsyms is not working correctly, the build will fail with
272*1da177e4SLinus Torvalds	   inconsistent kallsyms data.  If that occurs, log a bug report and
273*1da177e4SLinus Torvalds	   turn on KALLSYMS_EXTRA_PASS which should result in a stable build.
274*1da177e4SLinus Torvalds	   Always say N here unless you find a bug in kallsyms, which must be
275*1da177e4SLinus Torvalds	   reported.  KALLSYMS_EXTRA_PASS is only a temporary workaround while
276*1da177e4SLinus Torvalds	   you wait for kallsyms to be fixed.
277*1da177e4SLinus Torvalds
278*1da177e4SLinus Torvaldsconfig BASE_FULL
279*1da177e4SLinus Torvalds	default y
280*1da177e4SLinus Torvalds	bool "Enable full-sized data structures for core" if EMBEDDED
281*1da177e4SLinus Torvalds	help
282*1da177e4SLinus Torvalds	  Disabling this option reduces the size of miscellaneous core
283*1da177e4SLinus Torvalds	  kernel data structures. This saves memory on small machines,
284*1da177e4SLinus Torvalds	  but may reduce performance.
285*1da177e4SLinus Torvalds
286*1da177e4SLinus Torvaldsconfig FUTEX
287*1da177e4SLinus Torvalds	bool "Enable futex support" if EMBEDDED
288*1da177e4SLinus Torvalds	default y
289*1da177e4SLinus Torvalds	help
290*1da177e4SLinus Torvalds	  Disabling this option will cause the kernel to be built without
291*1da177e4SLinus Torvalds	  support for "fast userspace mutexes".  The resulting kernel may not
292*1da177e4SLinus Torvalds	  run glibc-based applications correctly.
293*1da177e4SLinus Torvalds
294*1da177e4SLinus Torvaldsconfig EPOLL
295*1da177e4SLinus Torvalds	bool "Enable eventpoll support" if EMBEDDED
296*1da177e4SLinus Torvalds	default y
297*1da177e4SLinus Torvalds	help
298*1da177e4SLinus Torvalds	  Disabling this option will cause the kernel to be built without
299*1da177e4SLinus Torvalds	  support for epoll family of system calls.
300*1da177e4SLinus Torvalds
301*1da177e4SLinus Torvaldsconfig CC_OPTIMIZE_FOR_SIZE
302*1da177e4SLinus Torvalds	bool "Optimize for size" if EMBEDDED
303*1da177e4SLinus Torvalds	default y if ARM || H8300
304*1da177e4SLinus Torvalds	help
305*1da177e4SLinus Torvalds	  Enabling this option will pass "-Os" instead of "-O2" to gcc
306*1da177e4SLinus Torvalds	  resulting in a smaller kernel.
307*1da177e4SLinus Torvalds
308*1da177e4SLinus Torvalds	  WARNING: some versions of gcc may generate incorrect code with this
309*1da177e4SLinus Torvalds	  option.  If problems are observed, a gcc upgrade may be needed.
310*1da177e4SLinus Torvalds
311*1da177e4SLinus Torvalds	  If unsure, say N.
312*1da177e4SLinus Torvalds
313*1da177e4SLinus Torvaldsconfig SHMEM
314*1da177e4SLinus Torvalds	bool "Use full shmem filesystem" if EMBEDDED
315*1da177e4SLinus Torvalds	default y
316*1da177e4SLinus Torvalds	depends on MMU
317*1da177e4SLinus Torvalds	help
318*1da177e4SLinus Torvalds	  The shmem is an internal filesystem used to manage shared memory.
319*1da177e4SLinus Torvalds	  It is backed by swap and manages resource limits. It is also exported
320*1da177e4SLinus Torvalds	  to userspace as tmpfs if TMPFS is enabled. Disabling this
321*1da177e4SLinus Torvalds	  option replaces shmem and tmpfs with the much simpler ramfs code,
322*1da177e4SLinus Torvalds	  which may be appropriate on small systems without swap.
323*1da177e4SLinus Torvalds
324*1da177e4SLinus Torvaldsconfig CC_ALIGN_FUNCTIONS
325*1da177e4SLinus Torvalds	int "Function alignment" if EMBEDDED
326*1da177e4SLinus Torvalds	default 0
327*1da177e4SLinus Torvalds	help
328*1da177e4SLinus Torvalds	  Align the start of functions to the next power-of-two greater than n,
329*1da177e4SLinus Torvalds	  skipping up to n bytes.  For instance, 32 aligns functions
330*1da177e4SLinus Torvalds	  to the next 32-byte boundary, but 24 would align to the next
331*1da177e4SLinus Torvalds	  32-byte boundary only if this can be done by skipping 23 bytes or less.
332*1da177e4SLinus Torvalds	  Zero means use compiler's default.
333*1da177e4SLinus Torvalds
334*1da177e4SLinus Torvaldsconfig CC_ALIGN_LABELS
335*1da177e4SLinus Torvalds	int "Label alignment" if EMBEDDED
336*1da177e4SLinus Torvalds	default 0
337*1da177e4SLinus Torvalds	help
338*1da177e4SLinus Torvalds	  Align all branch targets to a power-of-two boundary, skipping
339*1da177e4SLinus Torvalds	  up to n bytes like ALIGN_FUNCTIONS.  This option can easily
340*1da177e4SLinus Torvalds	  make code slower, because it must insert dummy operations for
341*1da177e4SLinus Torvalds	  when the branch target is reached in the usual flow of the code.
342*1da177e4SLinus Torvalds	  Zero means use compiler's default.
343*1da177e4SLinus Torvalds
344*1da177e4SLinus Torvaldsconfig CC_ALIGN_LOOPS
345*1da177e4SLinus Torvalds	int "Loop alignment" if EMBEDDED
346*1da177e4SLinus Torvalds	default 0
347*1da177e4SLinus Torvalds	help
348*1da177e4SLinus Torvalds	  Align loops to a power-of-two boundary, skipping up to n bytes.
349*1da177e4SLinus Torvalds	  Zero means use compiler's default.
350*1da177e4SLinus Torvalds
351*1da177e4SLinus Torvaldsconfig CC_ALIGN_JUMPS
352*1da177e4SLinus Torvalds	int "Jump alignment" if EMBEDDED
353*1da177e4SLinus Torvalds	default 0
354*1da177e4SLinus Torvalds	help
355*1da177e4SLinus Torvalds	  Align branch targets to a power-of-two boundary, for branch
356*1da177e4SLinus Torvalds	  targets where the targets can only be reached by jumping,
357*1da177e4SLinus Torvalds	  skipping up to n bytes like ALIGN_FUNCTIONS.  In this case,
358*1da177e4SLinus Torvalds	  no dummy operations need be executed.
359*1da177e4SLinus Torvalds	  Zero means use compiler's default.
360*1da177e4SLinus Torvalds
361*1da177e4SLinus Torvaldsendmenu		# General setup
362*1da177e4SLinus Torvalds
363*1da177e4SLinus Torvaldsconfig TINY_SHMEM
364*1da177e4SLinus Torvalds	default !SHMEM
365*1da177e4SLinus Torvalds	bool
366*1da177e4SLinus Torvalds
367*1da177e4SLinus Torvaldsconfig BASE_SMALL
368*1da177e4SLinus Torvalds	int
369*1da177e4SLinus Torvalds	default 0 if BASE_FULL
370*1da177e4SLinus Torvalds	default 1 if !BASE_FULL
371*1da177e4SLinus Torvalds
372*1da177e4SLinus Torvaldsmenu "Loadable module support"
373*1da177e4SLinus Torvalds
374*1da177e4SLinus Torvaldsconfig MODULES
375*1da177e4SLinus Torvalds	bool "Enable loadable module support"
376*1da177e4SLinus Torvalds	help
377*1da177e4SLinus Torvalds	  Kernel modules are small pieces of compiled code which can
378*1da177e4SLinus Torvalds	  be inserted in the running kernel, rather than being
379*1da177e4SLinus Torvalds	  permanently built into the kernel.  You use the "modprobe"
380*1da177e4SLinus Torvalds	  tool to add (and sometimes remove) them.  If you say Y here,
381*1da177e4SLinus Torvalds	  many parts of the kernel can be built as modules (by
382*1da177e4SLinus Torvalds	  answering M instead of Y where indicated): this is most
383*1da177e4SLinus Torvalds	  useful for infrequently used options which are not required
384*1da177e4SLinus Torvalds	  for booting.  For more information, see the man pages for
385*1da177e4SLinus Torvalds	  modprobe, lsmod, modinfo, insmod and rmmod.
386*1da177e4SLinus Torvalds
387*1da177e4SLinus Torvalds	  If you say Y here, you will need to run "make
388*1da177e4SLinus Torvalds	  modules_install" to put the modules under /lib/modules/
389*1da177e4SLinus Torvalds	  where modprobe can find them (you may need to be root to do
390*1da177e4SLinus Torvalds	  this).
391*1da177e4SLinus Torvalds
392*1da177e4SLinus Torvalds	  If unsure, say Y.
393*1da177e4SLinus Torvalds
394*1da177e4SLinus Torvaldsconfig MODULE_UNLOAD
395*1da177e4SLinus Torvalds	bool "Module unloading"
396*1da177e4SLinus Torvalds	depends on MODULES
397*1da177e4SLinus Torvalds	help
398*1da177e4SLinus Torvalds	  Without this option you will not be able to unload any
399*1da177e4SLinus Torvalds	  modules (note that some modules may not be unloadable
400*1da177e4SLinus Torvalds	  anyway), which makes your kernel slightly smaller and
401*1da177e4SLinus Torvalds	  simpler.  If unsure, say Y.
402*1da177e4SLinus Torvalds
403*1da177e4SLinus Torvaldsconfig MODULE_FORCE_UNLOAD
404*1da177e4SLinus Torvalds	bool "Forced module unloading"
405*1da177e4SLinus Torvalds	depends on MODULE_UNLOAD && EXPERIMENTAL
406*1da177e4SLinus Torvalds	help
407*1da177e4SLinus Torvalds	  This option allows you to force a module to unload, even if the
408*1da177e4SLinus Torvalds	  kernel believes it is unsafe: the kernel will remove the module
409*1da177e4SLinus Torvalds	  without waiting for anyone to stop using it (using the -f option to
410*1da177e4SLinus Torvalds	  rmmod).  This is mainly for kernel developers and desperate users.
411*1da177e4SLinus Torvalds	  If unsure, say N.
412*1da177e4SLinus Torvalds
413*1da177e4SLinus Torvaldsconfig OBSOLETE_MODPARM
414*1da177e4SLinus Torvalds	bool
415*1da177e4SLinus Torvalds	default y
416*1da177e4SLinus Torvalds	depends on MODULES
417*1da177e4SLinus Torvalds	help
418*1da177e4SLinus Torvalds	  You need this option to use module parameters on modules which
419*1da177e4SLinus Torvalds	  have not been converted to the new module parameter system yet.
420*1da177e4SLinus Torvalds	  If unsure, say Y.
421*1da177e4SLinus Torvalds
422*1da177e4SLinus Torvaldsconfig MODVERSIONS
423*1da177e4SLinus Torvalds	bool "Module versioning support (EXPERIMENTAL)"
424*1da177e4SLinus Torvalds	depends on MODULES && EXPERIMENTAL && !UML
425*1da177e4SLinus Torvalds	help
426*1da177e4SLinus Torvalds	  Usually, you have to use modules compiled with your kernel.
427*1da177e4SLinus Torvalds	  Saying Y here makes it sometimes possible to use modules
428*1da177e4SLinus Torvalds	  compiled for different kernels, by adding enough information
429*1da177e4SLinus Torvalds	  to the modules to (hopefully) spot any changes which would
430*1da177e4SLinus Torvalds	  make them incompatible with the kernel you are running.  If
431*1da177e4SLinus Torvalds	  unsure, say N.
432*1da177e4SLinus Torvalds
433*1da177e4SLinus Torvaldsconfig MODULE_SRCVERSION_ALL
434*1da177e4SLinus Torvalds	bool "Source checksum for all modules"
435*1da177e4SLinus Torvalds	depends on MODULES
436*1da177e4SLinus Torvalds	help
437*1da177e4SLinus Torvalds	  Modules which contain a MODULE_VERSION get an extra "srcversion"
438*1da177e4SLinus Torvalds	  field inserted into their modinfo section, which contains a
439*1da177e4SLinus Torvalds    	  sum of the source files which made it.  This helps maintainers
440*1da177e4SLinus Torvalds	  see exactly which source was used to build a module (since
441*1da177e4SLinus Torvalds	  others sometimes change the module source without updating
442*1da177e4SLinus Torvalds	  the version).  With this option, such a "srcversion" field
443*1da177e4SLinus Torvalds	  will be created for all modules.  If unsure, say N.
444*1da177e4SLinus Torvalds
445*1da177e4SLinus Torvaldsconfig KMOD
446*1da177e4SLinus Torvalds	bool "Automatic kernel module loading"
447*1da177e4SLinus Torvalds	depends on MODULES
448*1da177e4SLinus Torvalds	help
449*1da177e4SLinus Torvalds	  Normally when you have selected some parts of the kernel to
450*1da177e4SLinus Torvalds	  be created as kernel modules, you must load them (using the
451*1da177e4SLinus Torvalds	  "modprobe" command) before you can use them. If you say Y
452*1da177e4SLinus Torvalds	  here, some parts of the kernel will be able to load modules
453*1da177e4SLinus Torvalds	  automatically: when a part of the kernel needs a module, it
454*1da177e4SLinus Torvalds	  runs modprobe with the appropriate arguments, thereby
455*1da177e4SLinus Torvalds	  loading the module if it is available.  If unsure, say Y.
456*1da177e4SLinus Torvalds
457*1da177e4SLinus Torvaldsconfig STOP_MACHINE
458*1da177e4SLinus Torvalds	bool
459*1da177e4SLinus Torvalds	default y
460*1da177e4SLinus Torvalds	depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
461*1da177e4SLinus Torvalds	help
462*1da177e4SLinus Torvalds	  Need stop_machine() primitive.
463*1da177e4SLinus Torvaldsendmenu
464