X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Config.in;h=7e20e162be1fbf05e501f6c472c943a44aa91ce4;hb=93ad1c2385b9f628c6ccdbfa6fade62f1ae754fc;hp=3501ff767aa3292b5b759f9d93d929bc56805355;hpb=7a43bd07e64e6db795d4661321da1cab14d9c4f6;p=oweals%2Fbusybox.git diff --git a/Config.in b/Config.in index 3501ff767..7e20e162b 100644 --- a/Config.in +++ b/Config.in @@ -9,11 +9,38 @@ config HAVE_DOT_CONFIG bool default y +menu "Busybox Settings" + menu "General Configuration" +config NITPICK + bool "See lots more (probably unnecessary) configuration options." + default n + help + Some BusyBox applets have more configuration options than anyone + will ever care about. To avoid drowining people in complexity, most + of the applet features that can be set to a sane default value are + hidden, unless you hit the above switch. + + This is better than to telling people to edit the busybox source + code, but not by much. + + See http://en.wikipedia.org/wiki/Fibber_McGee_and_Molly#The_Closet + + You have been warned. + +config DESKTOP + bool "Enable options for full-blown desktop systems" + default n + help + Enable options and features which are not essential. + Select this only if you plan to use busybox on full-blown + desktop machine with common Linux distro, not on an embedded box. + choice prompt "Buffer allocation policy" - default CONFIG_FEATURE_BUFFERS_USE_MALLOC + default FEATURE_BUFFERS_USE_MALLOC + depends on NITPICK help There are 3 ways BusyBox can handle buffer allocations: - Use malloc. This costs code size for the call to xmalloc. @@ -24,27 +51,51 @@ choice behavior was the only one available for BusyBox versions 0.48 and earlier. -config CONFIG_FEATURE_BUFFERS_USE_MALLOC +config FEATURE_BUFFERS_USE_MALLOC bool "Allocate with Malloc" -config CONFIG_FEATURE_BUFFERS_GO_ON_STACK +config FEATURE_BUFFERS_GO_ON_STACK bool "Allocate on the Stack" -config CONFIG_FEATURE_BUFFERS_GO_IN_BSS +config FEATURE_BUFFERS_GO_IN_BSS bool "Allocate in the .bss section" endchoice -config CONFIG_FEATURE_VERBOSE_USAGE +config SHOW_USAGE + bool "Show terse applet usage messages" + default y + help + All BusyBox applets will show help messages when invoked with + wrong arguments. You can turn off printing these terse usage + messages if you say no here. + This will save you up to 7k. + +config FEATURE_VERBOSE_USAGE bool "Show verbose applet usage messages" default n + select SHOW_USAGE help All BusyBox applets will show more verbose help messages when busybox is invoked with --help. This will add a lot of text to the busybox binary. In the default configuration, this will add about 13k, but it can add much more depending on your configuration. -config CONFIG_FEATURE_INSTALLER +config FEATURE_COMPRESS_USAGE + bool "Store applet usage messages in compressed form" + default y + depends on SHOW_USAGE + help + Store usage messages in compressed form, uncompress them on-the-fly + when --help is called. + + If you have a really tiny busybox with few applets enabled (and + bunzip2 isn't one of them), the overhead of the decompressor might + be noticeable. Also, if you run executables directly from ROM + and have very little memory, this might not be a win. Otherwise, + you probably want this. + +config FEATURE_INSTALLER bool "Support --install [-s] to install applet links at runtime" default n help @@ -53,52 +104,75 @@ config CONFIG_FEATURE_INSTALLER applets that are compiled into busybox. This feature requires the /proc filesystem. -config CONFIG_LOCALE_SUPPORT +config LOCALE_SUPPORT bool "Enable locale support (system needs locale for this to work)" default n help Enable this if your system has locale support and you would like busybox to support locale settings. -config CONFIG_FEATURE_DEVFS - bool "Support for devfs" - default n - help - Enable if you want BusyBox to work with devfs. +config GETOPT_LONG + bool + default y +# bool "Enable support for --long-options" +# default n +# help +# Enable this if you want busybox applets to use the gnu --long-option +# style, in addition to single character -a -b -c style options. -config CONFIG_FEATURE_DEVPTS +config FEATURE_DEVPTS bool "Use the devpts filesystem for Unix98 PTYs" - default y if CONFIG_FEATURE_DEVFS + default y help Enable if you want BusyBox to use Unix98 PTY support. If enabled, busybox will use /dev/ptmx for the master side of the pseudoterminal and /dev/pts/ for the slave side. Otherwise, BSD style /dev/ttyp will be used. To use this option, you should have - devpts or devfs mounted. + devpts mounted. -config CONFIG_FEATURE_CLEAN_UP +config FEATURE_CLEAN_UP bool "Clean up all memory before exiting (usually not needed)" default n + depends on NITPICK help - As a size optimization, busybox by default does not cleanup memory - that is dynamically allocated or close files before exiting. This - saves space and is usually not needed since the OS will clean up for - us. Don't enable this unless you have a really good reason to clean + As a size optimization, busybox normally exits without explicitly + freeing dynamically allocated memory or closing files. This saves + space since the OS will clean up for us, but it can confuse debuggers + like valgrind, which report tons of memory and resource leaks. + + Don't enable this unless you have a really good reason to clean things up manually. -config CONFIG_FEATURE_SUID +config FEATURE_SUID bool "Support for SUID/SGID handling" default n help - Support SUID and SGID binaries. + With this option you can install the busybox binary belonging + to root with the suid bit set, and it'll and it'll automatically drop + priviledges for applets that don't need root access. + + If you're really paranoid and don't want to do this, build two + busybox binaries with different applets in them (and the appropriate + symlinks pointing to each binary), and only set the suid bit on the + one that needs it. The applets currently marked to need the suid bit + are login, passwd, su, ping, traceroute, crontab, dnsd, ipcrm, ipcs, + and vlock. + +config FEATURE_SYSLOG + bool "Support for syslog" + default n + help + This option is auto-selected when you select any applet which may + send its output to syslog. You do not need to select it manually. -config CONFIG_FEATURE_SUID_CONFIG +config FEATURE_SUID_CONFIG bool "Runtime SUID/SGID configuration via /etc/busybox.conf" - default n if CONFIG_FEATURE_SUID - depends on CONFIG_FEATURE_SUID + default n if FEATURE_SUID + depends on FEATURE_SUID help - Allow the SUID / SGID state of an applet to be determined runtime by - checking /etc/busybox.conf. The format of this file is as follows: + Allow the SUID / SGID state of an applet to be determined at runtime + by checking /etc/busybox.conf. (This is sort of a poor man's sudo.) + The format of this file is as follows: = [Ssx-][Ssx-][x-] (|).(|) @@ -123,34 +197,49 @@ config CONFIG_FEATURE_SUID_CONFIG Robert 'sandman' Griebl has more information here: . -config CONFIG_FEATURE_SUID_CONFIG_QUIET +config FEATURE_SUID_CONFIG_QUIET bool "Suppress warning message if /etc/busybox.conf is not readable" - default n - depends on CONFIG_FEATURE_SUID_CONFIG + default y + depends on FEATURE_SUID_CONFIG help /etc/busybox.conf should be readable by the user needing the SUID, check this option to avoid users to be notified about missing permissions. -config CONFIG_SELINUX +config SELINUX bool "Support NSA Security Enhanced Linux" default n help - Enable support for SE Linux in applets ls, ps, and id. Also provide - the option of compiling in SE Linux applets. + Enable support for SELinux in applets ls, ps, and id. Also provide + the option of compiling in SELinux applets. - If you do not have a complete SE Linux Full Userland installed, this - stuff will not compile. Go visit + If you do not have a complete SELinux userland installed, this stuff + will not compile. Go visit http://www.nsa.gov/selinux/index.html - to download the necessary stuff to allow busybox to compile with this - option enabled. + to download the necessary stuff to allow busybox to compile with + this option enabled. Specifially, libselinux 1.28 or better is + directly required by busybox. If the installation is located in a + non-standard directory, provide it by invoking make as follows: + CFLAGS=-I \ + LDFLAGS=-L \ + make Most people will leave this set to 'N'. +config BUSYBOX_EXEC_PATH + string "Path to BusyBox executable" + default "/proc/self/exe" + help + When Busybox applets need to run other busybox applets, BusyBox + sometimes needs to exec() itself. When the /proc filesystem is + mounted, /proc/self/exe always points to the currently running + executable. If you haven't got /proc, set this to wherever you + want to run BusyBox from. + endmenu menu 'Build Options' -config CONFIG_STATIC +config STATIC bool "Build BusyBox as a static binary (no shared libs)" default n help @@ -164,7 +253,46 @@ config CONFIG_STATIC Most people will leave this set to 'N'. -config CONFIG_LFS +config BUILD_LIBBUSYBOX + bool "Build shared libbusybox" + default n + help + Build a shared library libbusybox.so which contains all + libraries used inside busybox. + + This is an experimental feature intended to support the upcoming + "make standalone" mode. Enabling it against the one big busybox + binary serves no purpose (and increases the size). You should + almost certainly say "no" to this right now. + +config FEATURE_FULL_LIBBUSYBOX + bool "Feature-complete libbusybox" + default n if !FEATURE_SHARED_BUSYBOX + depends on BUILD_LIBBUSYBOX + help + Build a libbusybox with the complete feature-set, disregarding + the actually selected config. + + Normally, libbusybox will only contain the features which are + used by busybox itself. If you plan to write a separate + standalone application which uses libbusybox say 'Y'. + + Note: libbusybox is GPL, not LGPL, and exports no stable API that + might act as a copyright barrier. We can and will modify the + exported function set between releases (even minor version number + changes), and happily break out-of-tree features. + + Say 'N' if in doubt. + +config FEATURE_SHARED_BUSYBOX + bool "Use shared libbusybox for busybox" + default y if BUILD_LIBBUSYBOX + depends on !STATIC && BUILD_LIBBUSYBOX + help + Use libbusybox.so also for busybox itself. + You need to have a working dynamic linker to use this variant. + +config LFS bool "Build with Large File Support (for accessing files > 2 GB)" default n select FDISK_SUPPORT_LARGE_DISKS @@ -176,53 +304,107 @@ config CONFIG_LFS cp, mount, tar, and many others. If you want to access files larger than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'. -config USING_CROSS_COMPILER - bool "Do you want to build BusyBox with a Cross Compiler?" +config BUILD_AT_ONCE + bool "Compile all sources at once" default n help - Do you want to build BusyBox with a Cross Compiler? If so, - then enable this option. Otherwise leave it set to 'N'. + Normally each source-file is compiled with one invocation of + the compiler. + If you set this option, all sources are compiled at once. + This gives the compiler more opportunities to optimize which can + result in smaller and/or faster binaries. + + Setting this option will consume alot of memory, e.g. if you + enable all applets with all features, gcc uses more than 300MB + RAM during compilation of busybox. + + This option is most likely only beneficial for newer compilers + such as gcc-4.1 and above. + + Say 'N' unless you know what you are doing. + +endmenu + +menu 'Debugging Options' -config CROSS_COMPILER_PREFIX - string "Cross Compiler prefix" - default "/usr/i386-linux-uclibc/bin/i386-uclibc-" - depends on USING_CROSS_COMPILER +config DEBUG + bool "Build BusyBox with extra Debugging symbols" + default n help - If you want to build BusyBox with a cross compiler, then you - will need to set this to the cross-compiler prefix. For example, - if my cross-compiler is /usr/i386-linux-uclibc/bin/i386-uclibc-gcc - then I would enter '/usr/i386-linux-uclibc/bin/i386-uclibc-' here, - which will ensure the correct compiler is used. - -config EXTRA_CFLAGS_OPTIONS - string "Any extra CFLAGS options for the compiler?" - default "" + Say Y here if you wish to examine BusyBox internals while applets are + running. This increases the size of the binary considerably, and + should only be used when doing development. If you are doing + development and want to debug BusyBox, answer Y. + + Most people should answer N. + +config DEBUG_PESSIMIZE + bool "Disable compiler optimizations." + default n + depends on DEBUG help - Do you want to pass any extra CFLAGS options to the compiler as - you build BusyBox? If so, this is the option for you... For example, - if you want to add some simple compiler switches (like -march=i686), - or check for warnings using -Werror, just those options here. + The compiler's optimization of source code can eliminate and reorder + code, resulting in an executable that's hard to understand when + stepping through it with a debugger. This switches it off, resulting + in a much bigger executable that more closely matches the source + code. -config CONFIG_FEATURE_SUSv2 - bool "Enable features that are in SuSv2 but not SuSv3?" - default y +choice + prompt "Additional debugging library" + default NO_DEBUG_LIB + depends on DEBUG help - This option will enable backwards compatability with SuSv2, - specifically, numeric options such as 'head -1 ' will be - supported. + Using an additional debugging library will make BusyBox become + considerable larger and will cause it to run more slowly. You + should always leave this option disabled for production use. -config CONFIG_FEATURE_SUSv2_OBSOLETE - bool "Enable features that are obsolete in SuSv2" - depends on CONFIG_FEATURE_SUSv2 + dmalloc support: + ---------------- + This enables compiling with dmalloc ( http://dmalloc.com/ ) + which is an excellent public domain mem leak and malloc problem + detector. To enable dmalloc, before running busybox you will + want to properly set your environment, for example: + export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile + The 'debug=' value is generated using the following command + dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ + -p check-fence -p check-heap -p check-lists -p check-blank \ + -p check-funcs -p realloc-copy -p allow-free-null + + Electric-fence support: + ----------------------- + This enables compiling with Electric-fence support. Electric + fence is another very useful malloc debugging library which uses + your computer's virtual memory hardware to detect illegal memory + accesses. This support will make BusyBox be considerable larger + and run slower, so you should leave this option disabled unless + you are hunting a hard to find memory problem. + + +config NO_DEBUG_LIB + bool "None" + +config DMALLOC + bool "Dmalloc" + +config EFENCE + bool "Electric-fence" + +endchoice + +config DEBUG_YANK_SUSv2 + bool "Disable obsolete features removed before SUSv3?" default y help - Disables support for numeric arguments in fold. + This option will disable backwards compatibility with SuSv2, + specifically, old-style numeric options ('command -1 ') + will not be supported in head, tail, and fold. (Note: should + yank from renice too.) endmenu menu 'Installation Options' -config CONFIG_INSTALL_NO_USR +config INSTALL_NO_USR bool "Don't use /usr" default n help @@ -231,27 +413,27 @@ config CONFIG_INSTALL_NO_USR choice prompt "Applets links" - default CONFIG_INSTALL_APPLET_SYMLINKS + default INSTALL_APPLET_SYMLINKS help Choose how you install applets links. -config CONFIG_INSTALL_APPLET_SYMLINKS +config INSTALL_APPLET_SYMLINKS bool "as soft-links" help Install applets as soft-links to the busybox binary. This needs some free inodes on the filesystem, but might help with filesystem generators that can't cope with hard-links. -config CONFIG_INSTALL_APPLET_HARDLINKS +config INSTALL_APPLET_HARDLINKS bool "as hard-links" help Install applets as hard-links to the busybox binary. This might count on a filesystem with few inodes. -config CONFIG_INSTALL_APPLET_DONT +config INSTALL_APPLET_DONT bool prompt "not installed" - depends on CONFIG_FEATURE_INSTALLER || CONFIG_FEATURE_SH_STANDALONE_SHELL + depends on FEATURE_INSTALLER || FEATURE_SH_STANDALONE_SHELL help Do not install applets links. Usefull when using the -install feature or a standalone shell for rescue pruposes. @@ -264,82 +446,28 @@ config PREFIX help Define your directory to install BusyBox files/subdirs in. +endmenu +source libbb/Config.in endmenu +comment "Applets" + source archival/Config.in source coreutils/Config.in source console-tools/Config.in source debianutils/Config.in -source e2fsprogs/Config.in source editors/Config.in source findutils/Config.in source init/Config.in source loginutils/Config.in -source miscutils/Config.in +source e2fsprogs/Config.in source modutils/Config.in +source util-linux/Config.in +source miscutils/Config.in source networking/Config.in source procps/Config.in source shell/Config.in source sysklogd/Config.in -source util-linux/Config.in - -menu 'Debugging Options' - -config CONFIG_DEBUG - bool "Build BusyBox with Debugging symbols" - default n - help - Say Y here if you wish to compile BusyBox with debugging symbols. - This will allow you to use a debugger to examine BusyBox internals - while applets are running. This increases the size of the binary - considerably and should only be used when doing development. - If you are doing development and want to debug BusyBox, answer Y. - - Most people should answer N. - -choice - prompt "Additional debugging library" - default CONFIG_NO_DEBUG_LIB - depends on CONFIG_DEBUG - help - Using an additional debugging library will make BusyBox become - considerable larger and will cause it to run more slowly. You - should always leave this option disabled for production use. - - dmalloc support: - ---------------- - This enables compiling with dmalloc ( http://dmalloc.com/ ) - which is an excellent public domain mem leak and malloc problem - detector. To enable dmalloc, before running busybox you will - want to properly set your environment, for example: - export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile - The 'debug=' value is generated using the following command - dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \ - -p check-fence -p check-heap -p check-lists -p check-blank \ - -p check-funcs -p realloc-copy -p allow-free-null - - Electric-fence support: - ----------------------- - This enables compiling with Electric-fence support. Electric - fence is another very useful malloc debugging library which uses - your computer's virtual memory hardware to detect illegal memory - accesses. This support will make BusyBox be considerable larger - and run slower, so you should leave this option disabled unless - you are hunting a hard to find memory problem. - - -config CONFIG_NO_DEBUG_LIB - bool "None" - -config CONFIG_DMALLOC - bool "Dmalloc" - -config CONFIG_EFENCE - bool "Electric-fence" - -endchoice - - -endmenu +source runit/Config.in