busybox: update to 1.26.2
[oweals/openwrt.git] / package / utils / busybox / config / Config.in
1 #
2 # For a description of the syntax of this configuration file,
3 # see scripts/kbuild/config-language.txt.
4 #
5
6
7 config BUSYBOX_CONFIG_HAVE_DOT_CONFIG
8         bool
9         default BUSYBOX_DEFAULT_HAVE_DOT_CONFIG
10
11 menu "Busybox Settings"
12
13 config BUSYBOX_CONFIG_DESKTOP
14         bool "Enable options for full-blown desktop systems"
15         default BUSYBOX_DEFAULT_DESKTOP
16         help
17           Enable options and features which are not essential.
18           Select this if you plan to use busybox on full-blown desktop machine
19           with common Linux distro, which needs higher level of command-line
20           compatibility.
21
22           If you are preparing your build to be used on an embedded box
23           where you have tighter control over the entire set of userspace
24           tools, you can unselect this option for smaller code size.
25
26 config BUSYBOX_CONFIG_EXTRA_COMPAT
27         bool "Provide compatible behavior for rare corner cases (bigger code)"
28         default BUSYBOX_DEFAULT_EXTRA_COMPAT
29         help
30           This option makes grep, sed etc handle rare corner cases
31           (embedded NUL bytes and such). This makes code bigger and uses
32           some GNU extensions in libc. You probably only need this option
33           if you plan to run busybox on desktop.
34
35 config BUSYBOX_CONFIG_INCLUDE_SUSv2
36         bool "Enable obsolete features removed before SUSv3"
37         default BUSYBOX_DEFAULT_INCLUDE_SUSv2
38         help
39           This option will enable backwards compatibility with SuSv2,
40           specifically, old-style numeric options ('command -1 <file>')
41           will be supported in head, tail, and fold. (Note: should
42           affect renice too.)
43
44 config BUSYBOX_CONFIG_USE_PORTABLE_CODE
45         bool "Avoid using GCC-specific code constructs"
46         default BUSYBOX_DEFAULT_USE_PORTABLE_CODE
47         help
48           Use this option if you are trying to compile busybox with
49           compiler other than gcc.
50           If you do use gcc, this option may needlessly increase code size.
51
52 config BUSYBOX_CONFIG_PLATFORM_LINUX
53         bool "Enable Linux-specific applets and features"
54         default BUSYBOX_DEFAULT_PLATFORM_LINUX
55         help
56           For the most part, busybox requires only POSIX compatibility
57           from the target system, but some applets and features use
58           Linux-specific interfaces.
59
60           Answering 'N' here will disable such applets and hide the
61           corresponding configuration options.
62
63 config BUSYBOX_CONFIG_SHOW_USAGE
64         bool "Show applet usage messages"
65         default BUSYBOX_DEFAULT_SHOW_USAGE
66         help
67           Enabling this option, BusyBox applets will show terse help messages
68           when invoked with wrong arguments.
69           If you do not want to show any (helpful) usage message when
70           issuing wrong command syntax, you can say 'N' here,
71           saving approximately 7k.
72
73 config BUSYBOX_CONFIG_FEATURE_VERBOSE_USAGE
74         bool "Show verbose applet usage messages"
75         default BUSYBOX_DEFAULT_FEATURE_VERBOSE_USAGE
76         depends on BUSYBOX_CONFIG_SHOW_USAGE
77         help
78           All BusyBox applets will show verbose help messages when
79           busybox is invoked with --help. This will add a lot of text to the
80           busybox binary. In the default configuration, this will add about
81           13k, but it can add much more depending on your configuration.
82
83 config BUSYBOX_CONFIG_FEATURE_COMPRESS_USAGE
84         bool "Store applet usage messages in compressed form"
85         default BUSYBOX_DEFAULT_FEATURE_COMPRESS_USAGE
86         depends on BUSYBOX_CONFIG_SHOW_USAGE
87         help
88           Store usage messages in .bz compressed form, uncompress them
89           on-the-fly when <applet> --help is called.
90
91           If you have a really tiny busybox with few applets enabled (and
92           bunzip2 isn't one of them), the overhead of the decompressor might
93           be noticeable. Also, if you run executables directly from ROM
94           and have very little memory, this might not be a win. Otherwise,
95           you probably want this.
96
97 config BUSYBOX_CONFIG_BUSYBOX
98         bool "Include busybox applet"
99         default BUSYBOX_DEFAULT_BUSYBOX
100         help
101           The busybox applet provides general help regarding busybox and
102           allows the included applets to be listed.  It's also required
103           if applet links are to be installed at runtime.
104
105           If you can live without these features disabling this will save
106           some space.
107
108 config BUSYBOX_CONFIG_FEATURE_INSTALLER
109         bool "Support --install [-s] to install applet links at runtime"
110         default BUSYBOX_DEFAULT_FEATURE_INSTALLER
111         depends on BUSYBOX_CONFIG_BUSYBOX
112         help
113           Enable 'busybox --install [-s]' support. This will allow you to use
114           busybox at runtime to create hard links or symlinks for all the
115           applets that are compiled into busybox.
116
117 config BUSYBOX_CONFIG_INSTALL_NO_USR
118         bool "Don't use /usr"
119         default BUSYBOX_DEFAULT_INSTALL_NO_USR
120         help
121           Disable use of /usr. busybox --install and "make install"
122           will install applets only to /bin and /sbin,
123           never to /usr/bin or /usr/sbin.
124
125 config BUSYBOX_CONFIG_PAM
126         bool "Support for PAM (Pluggable Authentication Modules)"
127         default BUSYBOX_DEFAULT_PAM
128         help
129           Use PAM in some busybox applets (currently login and httpd) instead
130           of direct access to password database.
131
132 config BUSYBOX_CONFIG_LONG_OPTS
133         bool "Support for --long-options"
134         default BUSYBOX_DEFAULT_LONG_OPTS
135         help
136           Enable this if you want busybox applets to use the gnu --long-option
137           style, in addition to single character -a -b -c style options.
138
139 config BUSYBOX_CONFIG_FEATURE_DEVPTS
140         bool "Use the devpts filesystem for Unix98 PTYs"
141         default BUSYBOX_DEFAULT_FEATURE_DEVPTS
142         help
143           Enable if you want BusyBox to use Unix98 PTY support. If enabled,
144           busybox will use /dev/ptmx for the master side of the pseudoterminal
145           and /dev/pts/<number> for the slave side. Otherwise, BSD style
146           /dev/ttyp<number> will be used. To use this option, you should have
147           devpts mounted.
148
149 config BUSYBOX_CONFIG_FEATURE_CLEAN_UP
150         bool "Clean up all memory before exiting (usually not needed)"
151         default BUSYBOX_DEFAULT_FEATURE_CLEAN_UP
152         help
153           As a size optimization, busybox normally exits without explicitly
154           freeing dynamically allocated memory or closing files. This saves
155           space since the OS will clean up for us, but it can confuse debuggers
156           like valgrind, which report tons of memory and resource leaks.
157
158           Don't enable this unless you have a really good reason to clean
159           things up manually.
160
161 config BUSYBOX_CONFIG_FEATURE_UTMP
162         bool "Support utmp file"
163         default BUSYBOX_DEFAULT_FEATURE_UTMP
164         help
165           The file /var/run/utmp is used to track who is currently logged in.
166           With this option on, certain applets (getty, login, telnetd etc)
167           will create and delete entries there.
168           "who" applet requires this option.
169
170 config BUSYBOX_CONFIG_FEATURE_WTMP
171         bool "Support wtmp file"
172         default BUSYBOX_DEFAULT_FEATURE_WTMP
173         depends on BUSYBOX_CONFIG_FEATURE_UTMP
174         help
175           The file /var/run/wtmp is used to track when users have logged into
176           and logged out of the system.
177           With this option on, certain applets (getty, login, telnetd etc)
178           will append new entries there.
179           "last" applet requires this option.
180
181 config BUSYBOX_CONFIG_FEATURE_PIDFILE
182         bool "Support writing pidfiles"
183         default BUSYBOX_DEFAULT_FEATURE_PIDFILE
184         help
185           This option makes some applets (e.g. crond, syslogd, inetd) write
186           a pidfile at the configured PID_FILE_PATH.  It has no effect
187           on applets which require pidfiles to run.
188
189 config BUSYBOX_CONFIG_PID_FILE_PATH
190         string "Path to directory for pidfile"
191         default BUSYBOX_DEFAULT_PID_FILE_PATH
192         depends on BUSYBOX_CONFIG_FEATURE_PIDFILE
193         help
194           This is the default path where pidfiles are created.  Applets which
195           allow you to set the pidfile path on the command line will override
196           this value.  The option has no effect on applets that require you to
197           specify a pidfile path.
198
199 config BUSYBOX_CONFIG_FEATURE_SUID
200         bool "Support for SUID/SGID handling"
201         default BUSYBOX_DEFAULT_FEATURE_SUID
202         help
203           With this option you can install the busybox binary belonging
204           to root with the suid bit set, enabling some applets to perform
205           root-level operations even when run by ordinary users
206           (for example, mounting of user mounts in fstab needs this).
207
208           Busybox will automatically drop privileges for applets
209           that don't need root access.
210
211           If you are really paranoid and don't want to do this, build two
212           busybox binaries with different applets in them (and the appropriate
213           symlinks pointing to each binary), and only set the suid bit on the
214           one that needs it.
215
216           The applets which require root rights (need suid bit or
217           to be run by root) and will refuse to execute otherwise:
218           crontab, login, passwd, su, vlock, wall.
219
220           The applets which will use root rights if they have them
221           (via suid bit, or because run by root), but would try to work
222           without root right nevertheless:
223           findfs, ping[6], traceroute[6], mount.
224
225           Note that if you DONT select this option, but DO make busybox
226           suid root, ALL applets will run under root, which is a huge
227           security hole (think "cp /some/file /etc/passwd").
228
229 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
230         bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
231         default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG
232         depends on BUSYBOX_CONFIG_FEATURE_SUID
233         help
234           Allow the SUID / SGID state of an applet to be determined at runtime
235           by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
236           The format of this file is as follows:
237
238           APPLET = [Ssx-][Ssx-][x-] [USER.GROUP]
239
240           s: USER or GROUP is allowed to execute APPLET.
241              APPLET will run under USER or GROUP
242              (reagardless of who's running it).
243           S: USER or GROUP is NOT allowed to execute APPLET.
244              APPLET will run under USER or GROUP.
245              This option is not very sensical.
246           x: USER/GROUP/others are allowed to execute APPLET.
247              No UID/GID change will be done when it is run.
248           -: USER/GROUP/others are not allowed to execute APPLET.
249
250           An example might help:
251
252           [SUID]
253           su = ssx root.0 # applet su can be run by anyone and runs with
254                           # euid=0/egid=0
255           su = ssx        # exactly the same
256
257           mount = sx- root.disk # applet mount can be run by root and members
258                                 # of group disk (but not anyone else)
259                                 # and runs with euid=0 (egid is not changed)
260
261           cp = --- # disable applet cp for everyone
262
263           The file has to be owned by user root, group root and has to be
264           writeable only by root:
265                 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
266           The busybox executable has to be owned by user root, group
267           root and has to be setuid root for this to work:
268                 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
269
270           Robert 'sandman' Griebl has more information here:
271           <url: http://www.softforge.de/bb/suid.html >.
272
273 config BUSYBOX_CONFIG_FEATURE_SUID_CONFIG_QUIET
274         bool "Suppress warning message if /etc/busybox.conf is not readable"
275         default BUSYBOX_DEFAULT_FEATURE_SUID_CONFIG_QUIET
276         depends on BUSYBOX_CONFIG_FEATURE_SUID_CONFIG
277         help
278           /etc/busybox.conf should be readable by the user needing the SUID,
279           check this option to avoid users to be notified about missing
280           permissions.
281
282 config BUSYBOX_CONFIG_SELINUX
283         bool "Support NSA Security Enhanced Linux"
284         default BUSYBOX_DEFAULT_SELINUX
285         select BUSYBOX_CONFIG_PLATFORM_LINUX
286         help
287           Enable support for SELinux in applets ls, ps, and id. Also provide
288           the option of compiling in SELinux applets.
289
290           If you do not have a complete SELinux userland installed, this stuff
291           will not compile.  Specifially, libselinux 1.28 or better is
292           directly required by busybox. If the installation is located in a
293           non-standard directory, provide it by invoking make as follows:
294                 CFLAGS=-I<libselinux-include-path> \
295                 LDFLAGS=-L<libselinux-lib-path> \
296                 make
297
298           Most people will leave this set to 'N'.
299
300 config BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
301         bool "exec prefers applets"
302         default BUSYBOX_DEFAULT_FEATURE_PREFER_APPLETS
303         help
304           This is an experimental option which directs applets about to
305           call 'exec' to try and find an applicable busybox applet before
306           searching the PATH. This is typically done by exec'ing
307           /proc/self/exe.
308           This may affect shell, find -exec, xargs and similar applets.
309           They will use applets even if /bin/<applet> -> busybox link
310           is missing (or is not a link to busybox). However, this causes
311           problems in chroot jails without mounted /proc and with ps/top
312           (command name can be shown as 'exe' for applets started this way).
313
314 config BUSYBOX_CONFIG_BUSYBOX_EXEC_PATH
315         string "Path to BusyBox executable"
316         default BUSYBOX_DEFAULT_BUSYBOX_EXEC_PATH
317         help
318           When Busybox applets need to run other busybox applets, BusyBox
319           sometimes needs to exec() itself. When the /proc filesystem is
320           mounted, /proc/self/exe always points to the currently running
321           executable. If you haven't got /proc, set this to wherever you
322           want to run BusyBox from.
323
324 # These are auto-selected by other options
325
326 config BUSYBOX_CONFIG_FEATURE_SYSLOG
327         bool #No description makes it a hidden option
328         default BUSYBOX_DEFAULT_FEATURE_SYSLOG
329         #help
330         #  This option is auto-selected when you select any applet which may
331         #  send its output to syslog. You do not need to select it manually.
332
333 config BUSYBOX_CONFIG_FEATURE_HAVE_RPC
334         bool #No description makes it a hidden option
335         default BUSYBOX_DEFAULT_FEATURE_HAVE_RPC
336         #help
337         #  This is automatically selected if any of enabled applets need it.
338         #  You do not need to select it manually.
339
340 comment 'Build Options'
341
342 config BUSYBOX_CONFIG_STATIC
343         bool "Build BusyBox as a static binary (no shared libs)"
344         default BUSYBOX_DEFAULT_STATIC
345         help
346           If you want to build a static BusyBox binary, which does not
347           use or require any shared libraries, then enable this option.
348           This can cause BusyBox to be considerably larger, so you should
349           leave this option false unless you have a good reason (i.e.
350           your target platform does not support shared libraries, or
351           you are building an initrd which doesn't need anything but
352           BusyBox, etc).
353
354           Most people will leave this set to 'N'.
355
356 config BUSYBOX_CONFIG_PIE
357         bool "Build BusyBox as a position independent executable"
358         default BUSYBOX_DEFAULT_PIE
359         depends on !BUSYBOX_CONFIG_STATIC
360         help
361           Hardened code option. PIE binaries are loaded at a different
362           address at each invocation. This has some overhead,
363           particularly on x86-32 which is short on registers.
364
365           Most people will leave this set to 'N'.
366
367 config BUSYBOX_CONFIG_NOMMU
368         bool "Force NOMMU build"
369         default BUSYBOX_DEFAULT_NOMMU
370         help
371           Busybox tries to detect whether architecture it is being
372           built against supports MMU or not. If this detection fails,
373           or if you want to build NOMMU version of busybox for testing,
374           you may force NOMMU build here.
375
376           Most people will leave this set to 'N'.
377
378 # PIE can be made to work with BUILD_LIBBUSYBOX, but currently
379 # build system does not support that
380 config BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
381         bool "Build shared libbusybox"
382         default BUSYBOX_DEFAULT_BUILD_LIBBUSYBOX
383         depends on !BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS && !BUSYBOX_CONFIG_PIE && !BUSYBOX_CONFIG_STATIC
384         help
385           Build a shared library libbusybox.so.N.N.N which contains all
386           busybox code.
387
388           This feature allows every applet to be built as a tiny
389           separate executable. Enabling it for "one big busybox binary"
390           approach serves no purpose and increases code size.
391           You should almost certainly say "no" to this.
392
393 ### config FEATURE_FULL_LIBBUSYBOX
394 ###     bool "Feature-complete libbusybox"
395 ###     default n if !FEATURE_SHARED_BUSYBOX
396 ###     depends on BUILD_LIBBUSYBOX
397 ###     help
398 ###       Build a libbusybox with the complete feature-set, disregarding
399 ###       the actually selected config.
400 ###
401 ###       Normally, libbusybox will only contain the features which are
402 ###       used by busybox itself. If you plan to write a separate
403 ###       standalone application which uses libbusybox say 'Y'.
404 ###
405 ###       Note: libbusybox is GPL, not LGPL, and exports no stable API that
406 ###       might act as a copyright barrier. We can and will modify the
407 ###       exported function set between releases (even minor version number
408 ###       changes), and happily break out-of-tree features.
409 ###
410 ###       Say 'N' if in doubt.
411
412 config BUSYBOX_CONFIG_FEATURE_INDIVIDUAL
413         bool "Produce a binary for each applet, linked against libbusybox"
414         default BUSYBOX_DEFAULT_FEATURE_INDIVIDUAL
415         depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
416         help
417           If your CPU architecture doesn't allow for sharing text/rodata
418           sections of running binaries, but allows for runtime dynamic
419           libraries, this option will allow you to reduce memory footprint
420           when you have many different applets running at once.
421
422           If your CPU architecture allows for sharing text/rodata,
423           having single binary is more optimal.
424
425           Each applet will be a tiny program, dynamically linked
426           against libbusybox.so.N.N.N.
427
428           You need to have a working dynamic linker.
429
430 config BUSYBOX_CONFIG_FEATURE_SHARED_BUSYBOX
431         bool "Produce additional busybox binary linked against libbusybox"
432         default BUSYBOX_DEFAULT_FEATURE_SHARED_BUSYBOX
433         depends on BUSYBOX_CONFIG_BUILD_LIBBUSYBOX
434         help
435           Build busybox, dynamically linked against libbusybox.so.N.N.N.
436
437           You need to have a working dynamic linker.
438
439 ### config BUILD_AT_ONCE
440 ###     bool "Compile all sources at once"
441 ###     default n
442 ###     help
443 ###       Normally each source-file is compiled with one invocation of
444 ###       the compiler.
445 ###       If you set this option, all sources are compiled at once.
446 ###       This gives the compiler more opportunities to optimize which can
447 ###       result in smaller and/or faster binaries.
448 ###
449 ###       Setting this option will consume alot of memory, e.g. if you
450 ###       enable all applets with all features, gcc uses more than 300MB
451 ###       RAM during compilation of busybox.
452 ###
453 ###       This option is most likely only beneficial for newer compilers
454 ###       such as gcc-4.1 and above.
455 ###
456 ###       Say 'N' unless you know what you are doing.
457
458 config BUSYBOX_CONFIG_LFS
459         bool
460         default BUSYBOX_DEFAULT_LFS
461         help
462           If you want to build BusyBox with large file support, then enable
463           this option. This will have no effect if your kernel or your C
464           library lacks large file support for large files. Some of the
465           programs that can benefit from large file support include dd, gzip,
466           cp, mount, tar, and many others. If you want to access files larger
467           than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
468
469 config BUSYBOX_CONFIG_CROSS_COMPILER_PREFIX
470         string "Cross Compiler prefix"
471         default BUSYBOX_DEFAULT_CROSS_COMPILER_PREFIX
472         help
473           If you want to build BusyBox with a cross compiler, then you
474           will need to set this to the cross-compiler prefix, for example,
475           "i386-uclibc-".
476
477           Note that CROSS_COMPILE environment variable or
478           "make CROSS_COMPILE=xxx ..." will override this selection.
479
480           Native builds leave this empty.
481
482 config BUSYBOX_CONFIG_SYSROOT
483         string "Path to sysroot"
484         default BUSYBOX_DEFAULT_SYSROOT
485         help
486           If you want to build BusyBox with a cross compiler, then you
487           might also need to specify where /usr/include and /usr/lib
488           will be found.
489
490           For example, BusyBox can be built against an installed
491           Android NDK, platform version 9, for ARM ABI with
492
493           CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm
494
495           Native builds leave this empty.
496
497 config BUSYBOX_CONFIG_EXTRA_CFLAGS
498         string "Additional CFLAGS"
499         default BUSYBOX_DEFAULT_EXTRA_CFLAGS
500         help
501           Additional CFLAGS to pass to the compiler verbatim.
502
503 config BUSYBOX_CONFIG_EXTRA_LDFLAGS
504         string "Additional LDFLAGS"
505         default BUSYBOX_DEFAULT_EXTRA_LDFLAGS
506         help
507           Additional LDFLAGS to pass to the linker verbatim.
508
509 config BUSYBOX_CONFIG_EXTRA_LDLIBS
510         string "Additional LDLIBS"
511         default BUSYBOX_DEFAULT_EXTRA_LDLIBS
512         help
513           Additional LDLIBS to pass to the linker with -l.
514
515 comment 'Installation Options ("make install" behavior)'
516
517 choice
518         prompt "What kind of applet links to install"
519         default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
520         help
521           Choose what kind of links to applets are created by "make install".
522
523 config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
524         bool "as soft-links"
525         help
526           Install applets as soft-links to the busybox binary. This needs some
527           free inodes on the filesystem, but might help with filesystem
528           generators that can't cope with hard-links.
529
530 config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS
531         bool "as hard-links"
532         help
533           Install applets as hard-links to the busybox binary. This might
534           count on a filesystem with few inodes.
535
536 config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
537         bool "as script wrappers"
538         help
539           Install applets as script wrappers that call the busybox binary.
540
541 config BUSYBOX_CONFIG_INSTALL_APPLET_DONT
542         bool "not installed"
543         help
544           Do not install applet links. Useful when you plan to use
545           busybox --install for installing links, or plan to use
546           a standalone shell and thus don't need applet links.
547
548 endchoice
549
550 choice
551         prompt "/bin/sh applet link"
552         default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
553         depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS
554         help
555           Choose how you install /bin/sh applet link.
556
557 config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK
558         bool "as soft-link"
559         help
560           Install /bin/sh applet as soft-link to the busybox binary.
561
562 config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK
563         bool "as hard-link"
564         help
565           Install /bin/sh applet as hard-link to the busybox binary.
566
567 config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
568         bool "as script wrapper"
569         help
570           Install /bin/sh applet as script wrapper that calls
571           the busybox binary.
572
573 endchoice
574
575 config BUSYBOX_CONFIG_PREFIX
576         string "BusyBox installation prefix"
577         default BUSYBOX_DEFAULT_PREFIX
578         help
579           Define your directory to install BusyBox files/subdirs in.
580
581 comment 'Debugging Options'
582
583 config BUSYBOX_CONFIG_DEBUG
584         bool "Build BusyBox with extra Debugging symbols"
585         default BUSYBOX_DEFAULT_DEBUG
586         help
587           Say Y here if you wish to examine BusyBox internals while applets are
588           running. This increases the size of the binary considerably, and
589           should only be used when doing development. If you are doing
590           development and want to debug BusyBox, answer Y.
591
592           Most people should answer N.
593
594 config BUSYBOX_CONFIG_DEBUG_PESSIMIZE
595         bool "Disable compiler optimizations"
596         default BUSYBOX_DEFAULT_DEBUG_PESSIMIZE
597         depends on BUSYBOX_CONFIG_DEBUG
598         help
599           The compiler's optimization of source code can eliminate and reorder
600           code, resulting in an executable that's hard to understand when
601           stepping through it with a debugger. This switches it off, resulting
602           in a much bigger executable that more closely matches the source
603           code.
604
605 config BUSYBOX_CONFIG_DEBUG_SANITIZE
606         bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)"
607         default BUSYBOX_DEFAULT_DEBUG_SANITIZE
608         help
609           Say Y here if you want to enable runtime sanitizers. These help
610           catch bad memory accesses (e.g. buffer overflows), but will make
611           the executable larger and slow down runtime a bit.
612
613           If you aren't developing/testing busybox, say N here.
614
615 config BUSYBOX_CONFIG_UNIT_TEST
616         bool "Build unit tests"
617         default BUSYBOX_DEFAULT_UNIT_TEST
618         help
619           Say Y here if you want to build unit tests (both the framework and
620           test cases) as a Busybox applet. This results in bigger code, so you
621           probably don't want this option in production builds.
622
623 config BUSYBOX_CONFIG_WERROR
624         bool "Abort compilation on any warning"
625         default BUSYBOX_DEFAULT_WERROR
626         help
627           Selecting this will add -Werror to gcc command line.
628
629           Most people should answer N.
630
631 choice
632         prompt "Additional debugging library"
633         default BUSYBOX_CONFIG_NO_DEBUG_LIB
634         help
635           Using an additional debugging library will make BusyBox become
636           considerable larger and will cause it to run more slowly. You
637           should always leave this option disabled for production use.
638
639           dmalloc support:
640           ----------------
641           This enables compiling with dmalloc ( http://dmalloc.com/ )
642           which is an excellent public domain mem leak and malloc problem
643           detector. To enable dmalloc, before running busybox you will
644           want to properly set your environment, for example:
645             export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
646           The 'debug=' value is generated using the following command
647             dmalloc -p log-stats -p log-non-free -p log-bad-space \
648                -p log-elapsed-time -p check-fence -p check-heap \
649                -p check-lists -p check-blank -p check-funcs -p realloc-copy \
650                -p allow-free-null
651
652           Electric-fence support:
653           -----------------------
654           This enables compiling with Electric-fence support. Electric
655           fence is another very useful malloc debugging library which uses
656           your computer's virtual memory hardware to detect illegal memory
657           accesses. This support will make BusyBox be considerable larger
658           and run slower, so you should leave this option disabled unless
659           you are hunting a hard to find memory problem.
660
661
662 config BUSYBOX_CONFIG_NO_DEBUG_LIB
663         bool "None"
664
665 config BUSYBOX_CONFIG_DMALLOC
666         bool "Dmalloc"
667
668 config BUSYBOX_CONFIG_EFENCE
669         bool "Electric-fence"
670
671 endchoice
672
673 endmenu
674
675 source libbb/Config.in
676
677 comment "Applets"
678
679 source archival/Config.in
680 source coreutils/Config.in
681 source console-tools/Config.in
682 source debianutils/Config.in
683 source editors/Config.in
684 source findutils/Config.in
685 source init/Config.in
686 source loginutils/Config.in
687 source e2fsprogs/Config.in
688 source modutils/Config.in
689 source util-linux/Config.in
690 source miscutils/Config.in
691 source networking/Config.in
692 source printutils/Config.in
693 source mailutils/Config.in
694 source procps/Config.in
695 source runit/Config.in
696 source selinux/Config.in
697 source shell/Config.in
698 source sysklogd/Config.in