Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/Config.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 816 - (hide annotations) (download)
Fri Apr 24 18:33:46 2009 UTC (15 years ago) by niro
File size: 19554 byte(s)
-updated to busybox-1.13.4
1 niro 532 #
2     # For a description of the syntax of this configuration file,
3     # see scripts/kbuild/config-language.txt.
4     #
5    
6     mainmenu "BusyBox Configuration"
7    
8     config HAVE_DOT_CONFIG
9     bool
10     default y
11    
12     menu "Busybox Settings"
13    
14     menu "General Configuration"
15    
16     config DESKTOP
17     bool "Enable options for full-blown desktop systems"
18     default n
19     help
20     Enable options and features which are not essential.
21     Select this only if you plan to use busybox on full-blown
22     desktop machine with common Linux distro, not on an embedded box.
23    
24 niro 816 config EXTRA_COMPAT
25     bool "Provide compatible behavior for rare corner cases (bigger code)"
26     default n
27     help
28     This option makes grep, sed etc handle rare corner cases
29     (embedded NUL bytes and such). This makes code bigger and uses
30     some GNU extensions in libc. You probably only need this option
31     if you plan to run busybox on desktop.
32    
33     config FEATURE_ASSUME_UNICODE
34     bool "Assume that 1:1 char/glyph correspondence is not true"
35     default n
36     help
37     This makes various applets aware that one byte is not
38     one character on screen.
39    
40     Busybox aims to eventually work correctly with Unicode displays.
41     Any older encodings are not guaranteed to work.
42     Probably by the time when busybox will be fully Unicode-clean,
43     other encodings will be mainly of historic interest.
44    
45 niro 532 choice
46     prompt "Buffer allocation policy"
47     default FEATURE_BUFFERS_USE_MALLOC
48     help
49     There are 3 ways BusyBox can handle buffer allocations:
50     - Use malloc. This costs code size for the call to xmalloc.
51     - Put them on stack. For some very small machines with limited stack
52 niro 816 space, this can be deadly. For most folks, this works just fine.
53 niro 532 - Put them in BSS. This works beautifully for computers with a real
54     MMU (and OS support), but wastes runtime RAM for uCLinux. This
55     behavior was the only one available for BusyBox versions 0.48 and
56     earlier.
57    
58     config FEATURE_BUFFERS_USE_MALLOC
59     bool "Allocate with Malloc"
60    
61     config FEATURE_BUFFERS_GO_ON_STACK
62     bool "Allocate on the Stack"
63    
64     config FEATURE_BUFFERS_GO_IN_BSS
65     bool "Allocate in the .bss section"
66    
67     endchoice
68    
69     config SHOW_USAGE
70     bool "Show terse applet usage messages"
71     default y
72     help
73     All BusyBox applets will show help messages when invoked with
74     wrong arguments. You can turn off printing these terse usage
75     messages if you say no here.
76     This will save you up to 7k.
77    
78     config FEATURE_VERBOSE_USAGE
79     bool "Show verbose applet usage messages"
80     default n
81     select SHOW_USAGE
82     help
83     All BusyBox applets will show more verbose help messages when
84 niro 816 busybox is invoked with --help. This will add a lot of text to the
85     busybox binary. In the default configuration, this will add about
86 niro 532 13k, but it can add much more depending on your configuration.
87    
88     config FEATURE_COMPRESS_USAGE
89     bool "Store applet usage messages in compressed form"
90     default y
91     depends on SHOW_USAGE
92     help
93     Store usage messages in compressed form, uncompress them on-the-fly
94     when <applet> --help is called.
95    
96     If you have a really tiny busybox with few applets enabled (and
97     bunzip2 isn't one of them), the overhead of the decompressor might
98 niro 816 be noticeable. Also, if you run executables directly from ROM
99     and have very little memory, this might not be a win. Otherwise,
100 niro 532 you probably want this.
101    
102     config FEATURE_INSTALLER
103     bool "Support --install [-s] to install applet links at runtime"
104     default n
105     help
106 niro 816 Enable 'busybox --install [-s]' support. This will allow you to use
107 niro 532 busybox at runtime to create hard links or symlinks for all the
108 niro 816 applets that are compiled into busybox.
109 niro 532
110     config LOCALE_SUPPORT
111     bool "Enable locale support (system needs locale for this to work)"
112     default n
113     help
114     Enable this if your system has locale support and you would like
115     busybox to support locale settings.
116    
117     config GETOPT_LONG
118 niro 816 bool "Support for --long-options"
119 niro 532 default y
120     help
121     Enable this if you want busybox applets to use the gnu --long-option
122     style, in addition to single character -a -b -c style options.
123    
124     config FEATURE_DEVPTS
125     bool "Use the devpts filesystem for Unix98 PTYs"
126     default y
127     help
128     Enable if you want BusyBox to use Unix98 PTY support. If enabled,
129     busybox will use /dev/ptmx for the master side of the pseudoterminal
130 niro 816 and /dev/pts/<number> for the slave side. Otherwise, BSD style
131 niro 532 /dev/ttyp<number> will be used. To use this option, you should have
132     devpts mounted.
133    
134     config FEATURE_CLEAN_UP
135     bool "Clean up all memory before exiting (usually not needed)"
136     default n
137     help
138     As a size optimization, busybox normally exits without explicitly
139 niro 816 freeing dynamically allocated memory or closing files. This saves
140 niro 532 space since the OS will clean up for us, but it can confuse debuggers
141     like valgrind, which report tons of memory and resource leaks.
142    
143     Don't enable this unless you have a really good reason to clean
144     things up manually.
145    
146 niro 816 config FEATURE_PIDFILE
147     bool "Support writing pidfiles"
148     default n
149     help
150     This option makes some applets (e.g. crond, syslogd, inetd) write
151     a pidfile in /var/run. Some applications rely on them.
152    
153 niro 532 config FEATURE_SUID
154     bool "Support for SUID/SGID handling"
155     default n
156     help
157     With this option you can install the busybox binary belonging
158 niro 816 to root with the suid bit set, and it will automatically drop
159 niro 532 priviledges for applets that don't need root access.
160    
161 niro 816 If you are really paranoid and don't want to do this, build two
162 niro 532 busybox binaries with different applets in them (and the appropriate
163     symlinks pointing to each binary), and only set the suid bit on the
164 niro 816 one that needs it. The applets currently marked to need the suid bit
165     are:
166 niro 532
167 niro 816 crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
168     traceroute, vlock.
169 niro 532
170     config FEATURE_SUID_CONFIG
171     bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
172     default n if FEATURE_SUID
173     depends on FEATURE_SUID
174     help
175     Allow the SUID / SGID state of an applet to be determined at runtime
176 niro 816 by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
177 niro 532 The format of this file is as follows:
178    
179     <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
180    
181     An example might help:
182    
183     [SUID]
184 niro 816 su = ssx root.0 # applet su can be run by anyone and runs with
185     # euid=0/egid=0
186 niro 532 su = ssx # exactly the same
187    
188 niro 816 mount = sx- root.disk # applet mount can be run by root and members
189     # of group disk and runs with euid=0
190 niro 532
191     cp = --- # disable applet cp for everyone
192    
193     The file has to be owned by user root, group root and has to be
194     writeable only by root:
195 niro 816 (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
196 niro 532 The busybox executable has to be owned by user root, group
197     root and has to be setuid root for this to work:
198 niro 816 (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
199 niro 532
200     Robert 'sandman' Griebl has more information here:
201     <url: http://www.softforge.de/bb/suid.html >.
202    
203     config FEATURE_SUID_CONFIG_QUIET
204     bool "Suppress warning message if /etc/busybox.conf is not readable"
205     default y
206     depends on FEATURE_SUID_CONFIG
207     help
208 niro 816 /etc/busybox.conf should be readable by the user needing the SUID,
209     check this option to avoid users to be notified about missing
210     permissions.
211 niro 532
212     config SELINUX
213     bool "Support NSA Security Enhanced Linux"
214     default n
215     help
216 niro 816 Enable support for SELinux in applets ls, ps, and id. Also provide
217 niro 532 the option of compiling in SELinux applets.
218    
219     If you do not have a complete SELinux userland installed, this stuff
220     will not compile. Go visit
221     http://www.nsa.gov/selinux/index.html
222     to download the necessary stuff to allow busybox to compile with
223     this option enabled. Specifially, libselinux 1.28 or better is
224     directly required by busybox. If the installation is located in a
225     non-standard directory, provide it by invoking make as follows:
226     CFLAGS=-I<libselinux-include-path> \
227     LDFLAGS=-L<libselinux-lib-path> \
228     make
229    
230     Most people will leave this set to 'N'.
231    
232 niro 816 config FEATURE_PREFER_APPLETS
233     bool "exec prefers applets"
234     default n
235     help
236     This is an experimental option which directs applets about to
237     call 'exec' to try and find an applicable busybox applet before
238     searching the PATH. This is typically done by exec'ing
239     /proc/self/exe.
240     This may affect shell, find -exec, xargs and similar applets.
241     They will use applets even if /bin/<applet> -> busybox link
242     is missing (or is not a link to busybox). However, this causes
243     problems in chroot jails without mounted /proc and with ps/top
244     (command name can be shown as 'exe' for applets started this way).
245    
246 niro 532 config BUSYBOX_EXEC_PATH
247     string "Path to BusyBox executable"
248     default "/proc/self/exe"
249     help
250     When Busybox applets need to run other busybox applets, BusyBox
251 niro 816 sometimes needs to exec() itself. When the /proc filesystem is
252 niro 532 mounted, /proc/self/exe always points to the currently running
253 niro 816 executable. If you haven't got /proc, set this to wherever you
254 niro 532 want to run BusyBox from.
255    
256 niro 816 # These are auto-selected by other options
257    
258     config FEATURE_SYSLOG
259     bool #No description makes it a hidden option
260     default n
261     #help
262     # This option is auto-selected when you select any applet which may
263     # send its output to syslog. You do not need to select it manually.
264    
265     config FEATURE_HAVE_RPC
266     bool #No description makes it a hidden option
267     default n
268     #help
269     # This is automatically selected if any of enabled applets need it.
270     # You do not need to select it manually.
271    
272 niro 532 endmenu
273    
274     menu 'Build Options'
275    
276     config STATIC
277     bool "Build BusyBox as a static binary (no shared libs)"
278     default n
279     help
280     If you want to build a static BusyBox binary, which does not
281     use or require any shared libraries, then enable this option.
282     This can cause BusyBox to be considerably larger, so you should
283     leave this option false unless you have a good reason (i.e.
284     your target platform does not support shared libraries, or
285     you are building an initrd which doesn't need anything but
286     BusyBox, etc).
287    
288     Most people will leave this set to 'N'.
289    
290 niro 816 config PIE
291     bool "Build BusyBox as a position independent executable"
292     default n
293     depends on !STATIC
294     help
295     (TODO: what is it and why/when is it useful?)
296     Most people will leave this set to 'N'.
297    
298     config NOMMU
299     bool "Force NOMMU build"
300     default n
301     help
302     Busybox tries to detect whether architecture it is being
303     built against supports MMU or not. If this detection fails,
304     or if you want to build NOMMU version of busybox for testing,
305     you may force NOMMU build here.
306    
307     Most people will leave this set to 'N'.
308    
309     # PIE can be made to work with BUILD_LIBBUSYBOX, but currently
310     # build system does not support that
311 niro 532 config BUILD_LIBBUSYBOX
312     bool "Build shared libbusybox"
313     default n
314 niro 816 depends on !FEATURE_PREFER_APPLETS && !PIE && !STATIC
315 niro 532 help
316 niro 816 Build a shared library libbusybox.so.N.N.N which contains all
317     busybox code.
318 niro 532
319 niro 816 This feature allows every applet to be built as a tiny
320     separate executable. Enabling it for "one big busybox binary"
321     approach serves no purpose and increases code size.
322     You should almost certainly say "no" to this.
323 niro 532
324 niro 816 ### config FEATURE_FULL_LIBBUSYBOX
325     ### bool "Feature-complete libbusybox"
326     ### default n if !FEATURE_SHARED_BUSYBOX
327     ### depends on BUILD_LIBBUSYBOX
328     ### help
329     ### Build a libbusybox with the complete feature-set, disregarding
330     ### the actually selected config.
331     ###
332     ### Normally, libbusybox will only contain the features which are
333     ### used by busybox itself. If you plan to write a separate
334     ### standalone application which uses libbusybox say 'Y'.
335     ###
336     ### Note: libbusybox is GPL, not LGPL, and exports no stable API that
337     ### might act as a copyright barrier. We can and will modify the
338     ### exported function set between releases (even minor version number
339     ### changes), and happily break out-of-tree features.
340     ###
341     ### Say 'N' if in doubt.
342    
343     config FEATURE_INDIVIDUAL
344     bool "Produce a binary for each applet, linked against libbusybox"
345     default y
346 niro 532 depends on BUILD_LIBBUSYBOX
347     help
348 niro 816 If your CPU architecture doesn't allow for sharing text/rodata
349     sections of running binaries, but allows for runtime dynamic
350     libraries, this option will allow you to reduce memory footprint
351     when you have many different applets running at once.
352 niro 532
353 niro 816 If your CPU architecture allows for sharing text/rodata,
354     having single binary is more optimal.
355 niro 532
356 niro 816 Each applet will be a tiny program, dynamically linked
357     against libbusybox.so.N.N.N.
358 niro 532
359 niro 816 You need to have a working dynamic linker.
360 niro 532
361     config FEATURE_SHARED_BUSYBOX
362 niro 816 bool "Produce additional busybox binary linked against libbusybox"
363     default y
364     depends on BUILD_LIBBUSYBOX
365 niro 532 help
366 niro 816 Build busybox, dynamically linked against libbusybox.so.N.N.N.
367 niro 532
368 niro 816 You need to have a working dynamic linker.
369    
370     ### config BUILD_AT_ONCE
371     ### bool "Compile all sources at once"
372     ### default n
373     ### help
374     ### Normally each source-file is compiled with one invocation of
375     ### the compiler.
376     ### If you set this option, all sources are compiled at once.
377     ### This gives the compiler more opportunities to optimize which can
378     ### result in smaller and/or faster binaries.
379     ###
380     ### Setting this option will consume alot of memory, e.g. if you
381     ### enable all applets with all features, gcc uses more than 300MB
382     ### RAM during compilation of busybox.
383     ###
384     ### This option is most likely only beneficial for newer compilers
385     ### such as gcc-4.1 and above.
386     ###
387     ### Say 'N' unless you know what you are doing.
388    
389 niro 532 config LFS
390     bool "Build with Large File Support (for accessing files > 2 GB)"
391     default n
392     select FDISK_SUPPORT_LARGE_DISKS
393     help
394     If you want to build BusyBox with large file support, then enable
395 niro 816 this option. This will have no effect if your kernel or your C
396     library lacks large file support for large files. Some of the
397 niro 532 programs that can benefit from large file support include dd, gzip,
398 niro 816 cp, mount, tar, and many others. If you want to access files larger
399     than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
400 niro 532
401 niro 816 config CROSS_COMPILER_PREFIX
402     string "Cross Compiler prefix"
403     default ""
404 niro 532 help
405 niro 816 If you want to build BusyBox with a cross compiler, then you
406     will need to set this to the cross-compiler prefix, for example,
407     "i386-uclibc-".
408 niro 532
409 niro 816 Note that CROSS_COMPILE environment variable or
410     "make CROSS_COMPILE=xxx ..." will override this selection.
411 niro 532
412 niro 816 Native builds leave this empty.
413 niro 532
414     endmenu
415    
416     menu 'Debugging Options'
417    
418     config DEBUG
419     bool "Build BusyBox with extra Debugging symbols"
420     default n
421     help
422     Say Y here if you wish to examine BusyBox internals while applets are
423 niro 816 running. This increases the size of the binary considerably, and
424     should only be used when doing development. If you are doing
425 niro 532 development and want to debug BusyBox, answer Y.
426    
427     Most people should answer N.
428    
429     config DEBUG_PESSIMIZE
430 niro 816 bool "Disable compiler optimizations"
431 niro 532 default n
432     depends on DEBUG
433     help
434     The compiler's optimization of source code can eliminate and reorder
435     code, resulting in an executable that's hard to understand when
436 niro 816 stepping through it with a debugger. This switches it off, resulting
437 niro 532 in a much bigger executable that more closely matches the source
438     code.
439    
440 niro 816 config WERROR
441     bool "Abort compilation on any warning"
442     default n
443     help
444     Selecting this will add -Werror to gcc command line.
445    
446     Most people should answer N.
447    
448 niro 532 choice
449     prompt "Additional debugging library"
450     default NO_DEBUG_LIB
451     help
452     Using an additional debugging library will make BusyBox become
453 niro 816 considerable larger and will cause it to run more slowly. You
454 niro 532 should always leave this option disabled for production use.
455    
456     dmalloc support:
457     ----------------
458     This enables compiling with dmalloc ( http://dmalloc.com/ )
459     which is an excellent public domain mem leak and malloc problem
460 niro 816 detector. To enable dmalloc, before running busybox you will
461 niro 532 want to properly set your environment, for example:
462     export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
463     The 'debug=' value is generated using the following command
464 niro 816 dmalloc -p log-stats -p log-non-free -p log-bad-space \
465     -p log-elapsed-time -p check-fence -p check-heap \
466     -p check-lists -p check-blank -p check-funcs -p realloc-copy \
467     -p allow-free-null
468 niro 532
469     Electric-fence support:
470     -----------------------
471 niro 816 This enables compiling with Electric-fence support. Electric
472 niro 532 fence is another very useful malloc debugging library which uses
473     your computer's virtual memory hardware to detect illegal memory
474 niro 816 accesses. This support will make BusyBox be considerable larger
475 niro 532 and run slower, so you should leave this option disabled unless
476     you are hunting a hard to find memory problem.
477    
478    
479     config NO_DEBUG_LIB
480     bool "None"
481    
482     config DMALLOC
483     bool "Dmalloc"
484    
485     config EFENCE
486     bool "Electric-fence"
487    
488     endchoice
489    
490     config INCLUDE_SUSv2
491     bool "Enable obsolete features removed before SUSv3?"
492     default y
493     help
494     This option will enable backwards compatibility with SuSv2,
495     specifically, old-style numeric options ('command -1 <file>')
496 niro 816 will be supported in head, tail, and fold. (Note: should
497 niro 532 affect renice too.)
498    
499 niro 816 ### config PARSE
500     ### bool "Uniform config file parser debugging applet: parse"
501    
502 niro 532 endmenu
503    
504     menu 'Installation Options'
505    
506     config INSTALL_NO_USR
507     bool "Don't use /usr"
508     default n
509     help
510     Disable use of /usr. Don't activate this option if you don't know
511     that you really want this behaviour.
512    
513     choice
514 niro 816 prompt "Applets links"
515     default INSTALL_APPLET_SYMLINKS
516     help
517     Choose how you install applets links.
518 niro 532
519     config INSTALL_APPLET_SYMLINKS
520 niro 816 bool "as soft-links"
521     help
522     Install applets as soft-links to the busybox binary. This needs some
523     free inodes on the filesystem, but might help with filesystem
524     generators that can't cope with hard-links.
525 niro 532
526     config INSTALL_APPLET_HARDLINKS
527 niro 816 bool "as hard-links"
528     help
529     Install applets as hard-links to the busybox binary. This might
530     count on a filesystem with few inodes.
531 niro 532
532 niro 816 config INSTALL_APPLET_SCRIPT_WRAPPERS
533     bool "as script wrappers"
534     help
535     Install applets as script wrappers that call the busybox binary.
536    
537 niro 532 config INSTALL_APPLET_DONT
538 niro 816 bool "not installed"
539     depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE || FEATURE_PREFER_APPLETS
540     help
541     Do not install applet links. Useful when using the -install feature
542     or a standalone shell for rescue purposes.
543 niro 532
544     endchoice
545    
546 niro 816 choice
547     prompt "/bin/sh applet link"
548     default INSTALL_SH_APPLET_SYMLINK
549     depends on INSTALL_APPLET_SCRIPT_WRAPPERS
550     help
551     Choose how you install /bin/sh applet link.
552    
553     config INSTALL_SH_APPLET_SYMLINK
554     bool "as soft-link"
555     help
556     Install /bin/sh applet as soft-link to the busybox binary.
557    
558     config INSTALL_SH_APPLET_HARDLINK
559     bool "as hard-link"
560     help
561     Install /bin/sh applet as hard-link to the busybox binary.
562    
563     config INSTALL_SH_APPLET_SCRIPT_WRAPPER
564     bool "as script wrapper"
565     help
566     Install /bin/sh applet as script wrapper that call the busybox
567     binary.
568    
569     endchoice
570    
571 niro 532 config PREFIX
572     string "BusyBox installation prefix"
573     default "./_install"
574     help
575     Define your directory to install BusyBox files/subdirs in.
576    
577     endmenu
578    
579     source libbb/Config.in
580    
581     endmenu
582    
583     comment "Applets"
584    
585     source archival/Config.in
586     source coreutils/Config.in
587     source console-tools/Config.in
588     source debianutils/Config.in
589     source editors/Config.in
590     source findutils/Config.in
591     source init/Config.in
592     source loginutils/Config.in
593     source e2fsprogs/Config.in
594     source modutils/Config.in
595     source util-linux/Config.in
596     source miscutils/Config.in
597     source networking/Config.in
598 niro 816 source printutils/Config.in
599     source mailutils/Config.in
600 niro 532 source procps/Config.in
601 niro 816 source runit/Config.in
602     source selinux/Config.in
603 niro 532 source shell/Config.in
604     source sysklogd/Config.in