menu "Busybox Library Tuning"
-config BUSYBOX_CONFIG_FEATURE_SYSTEMD
- bool "Enable systemd support"
- default n
- help
- If you plan to use busybox daemons on a system where daemons
- are controlled by systemd, enable this option.
- If you don't use systemd, it is still safe to enable it,
- but the downside is increased code size.
+config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
+ bool "Use the end of BSS page"
+ default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
+ help
+ Attempt to reclaim a small unused part of BSS.
+
+ Executables have the following parts:
+ = read-only executable code and constants, also known as "text"
+ = read-write data
+ = non-initialized (zeroed on demand) data, also known as "bss"
+
+ At link time, "text" is padded to a full page. At runtime, all "text"
+ pages are mapped RO and executable.
+ "Data" starts on the next page boundary, but is not padded
+ to a full page at the end. "Bss" starts wherever "data" ends.
+ At runtime, "data" pages are mapped RW and they are file-backed
+ (this includes a small portion of "bss" which may live in the last
+ partial page of "data").
+ Pages which are fully in "bss" are mapped to anonymous memory.
+
+ "Bss" end is usually not page-aligned. There is an unused space
+ in the last page. Linker marks its start with the "_end" symbol.
+
+ This option will attempt to use that space for bb_common_bufsiz1[]
+ array. If it fits after _end, it will be used, and COMMON_BUFSIZE
+ will be enlarged from its guaranteed minimum size of 1 kbyte.
+ This may require recompilation a second time, since value of _end
+ is known only after final link.
+
+ If you are getting a build error like this:
+ appletlib.c:(.text.main+0xd): undefined reference to '_end'
+ disable this option.
config BUSYBOX_CONFIG_FEATURE_RTMINMAX
bool "Support RTMIN[+n] and RTMAX[-n] signal names"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
help
Support RTMIN[+n] and RTMAX[-n] signal names
in kill, killall etc. This costs ~250 bytes.
config BUSYBOX_CONFIG_PASSWORD_MINLEN
int "Minimum password length"
- default 6
+ default BUSYBOX_DEFAULT_PASSWORD_MINLEN
range 5 32
help
Minimum allowable password length.
-config BUSYBOX_CONFIG_MD5_SIZE_VS_SPEED
+config BUSYBOX_CONFIG_MD5_SMALL
int "MD5: Trade bytes for speed (0:fast, 3:slow)"
- default 2
+ default BUSYBOX_DEFAULT_MD5_SMALL # all "fast or small" options default to small
range 0 3
help
Trade binary size versus speed for the md5sum algorithm.
2 3.0 5088
3 (smallest) 5.1 4912
+config BUSYBOX_CONFIG_SHA3_SMALL
+ int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
+ default BUSYBOX_DEFAULT_SHA3_SMALL # all "fast or small" options default to small
+ range 0 1
+ help
+ Trade binary size versus speed for the sha3sum algorithm.
+ SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
+ 64-bit x86: +270 bytes of code, 45% faster
+ 32-bit x86: +450 bytes of code, 75% faster
+
config BUSYBOX_CONFIG_FEATURE_FAST_TOP
bool "Faster /proc scanning code (+100 bytes)"
- default y
+ default BUSYBOX_DEFAULT_FEATURE_FAST_TOP # all "fast or small" options default to small
help
This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
but code size is slightly bigger.
config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
bool "Support for /etc/networks"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
help
Enable support for network names in /etc/networks. This is
a rarely used feature which allows you to use names
config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
bool "Use termios to manipulate the screen"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_USE_TERMIOS
depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_POWERTOP
help
This option allows utilities such as 'more' and 'top' to determine
config BUSYBOX_CONFIG_FEATURE_EDITING
bool "Command line editing"
- default y
+ default BUSYBOX_DEFAULT_FEATURE_EDITING
help
Enable line editing (mainly for shell command line).
config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
int "Maximum length of input"
range 128 8192
- default 512
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Line editing code uses on-stack buffers for storage.
config BUSYBOX_CONFIG_FEATURE_EDITING_VI
bool "vi-style line editing commands"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable vi-style line editing. In shells, this mode can be
int "History size"
# Don't allow way too big values here, code uses fixed "char *history[N]" struct member
range 0 9999
- default 256
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Specify command history size (0 - disable).
config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
bool "History saving"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable history saving in shells.
+config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
+ bool "Save history on shell exit, not after every command"
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
+ depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+ help
+ Save history on shell exit, not after every command.
+
config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
bool "Reverse history search"
- default n
- depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+ default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
+ depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable readline-like Ctrl-R combination for reverse history search.
Increases code by about 0.5k.
config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
bool "Tab completion"
- default y
+ default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Enable tab completion.
config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
bool "Username completion"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
help
Enable username completion.
config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
bool "Fancy shell prompts"
- default y
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Setting this option allows for prompts to use things like \w and
config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
bool "Query cursor position from terminal"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
bool "Non-POSIX, but safer, copying to special nodes"
- default y
+ default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
help
With this option, "cp file symlink" will delete symlink
and create a regular file. This does not conform to POSIX,
config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
bool "Give more precise messages when copy fails (cp, mv etc)"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
help
Error messages with this feature enabled:
$ cp file /does_not_exist/file
config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
int "Copy buffer size, in kilobytes"
range 1 1024
- default 4
+ default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
help
Size of buffer used by cp, mv, install, wget etc.
Buffers which are 4 kb or less will be allocated on stack.
config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
bool "Skip rootfs in mount table"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
help
Ignore rootfs entry in mount table.
However, some systems do not mount anything on /.
If you need to configure busybox for one of these systems,
- you may find useful to turn this option off to make df show
- initramfs statistic.
+ you may find it useful to turn this option off to make df show
+ initramfs statistics.
Otherwise, choose Y.
config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
- default n
+ default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
select BUSYBOX_CONFIG_PLATFORM_LINUX
help
Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
bool "Use ioctl names rather than hex values in error messages"
- default y
+ default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
help
Use ioctl names rather than hex values in error messages
(e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
config BUSYBOX_CONFIG_FEATURE_HWIB
bool "Support infiniband HW"
- default n
+ default BUSYBOX_DEFAULT_FEATURE_HWIB
help
Support for printing infiniband addresses in
network applets.