summaryrefslogtreecommitdiff
path: root/package/busybox/config/libbb/Config.in
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/config/libbb/Config.in')
-rw-r--r--package/busybox/config/libbb/Config.in487
1 files changed, 331 insertions, 156 deletions
diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in
index 6aff24699..66c135ec6 100644
--- a/package/busybox/config/libbb/Config.in
+++ b/package/busybox/config/libbb/Config.in
@@ -1,113 +1,221 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
-menu "Busybox Library Tuning"
+comment "Library Tuning"
config BUSYBOX_FEATURE_USE_BSS_TAIL
bool "Use the end of BSS page"
default n
help
- Attempt to reclaim a small unused part of BSS.
+ 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_FLOAT_DURATION
+ bool "Enable fractional duration arguments"
+ default y
+ help
+ Allow sleep N.NNN, top -d N.NNN etc.
+config BUSYBOX_FEATURE_RTMINMAX
+ bool "Support RTMIN[+n] and RTMAX[-n] signal names"
+ default y
+ help
+ Support RTMIN[+n] and RTMAX[-n] signal names
+ in kill, killall etc. This costs ~250 bytes.
- 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"
+config BUSYBOX_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+ bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
+ default y
+ depends on BUSYBOX_FEATURE_RTMINMAX
+ help
+ Some C libraries reserve a few real-time signals for internal
+ use, and adjust the values of SIGRTMIN/SIGRTMAX seen by
+ applications accordingly. Saying yes here means that a signal
+ name RTMIN+n will be interpreted according to the libc definition
+ of SIGRTMIN, and not the raw definition provided by the kernel.
+ This behavior matches "kill -l RTMIN+n" from bash.
+
+choice
+ prompt "Buffer allocation policy"
+ default BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
+ help
+ There are 3 ways busybox can handle buffer allocations:
+ - Use malloc. This costs code size for the call to xmalloc.
+ - Put them on stack. For some very small machines with limited stack
+ space, this can be deadly. For most folks, this works just fine.
+ - Put them in BSS. This works beautifully for computers with a real
+ MMU (and OS support), but wastes runtime RAM for uCLinux. This
+ behavior was the only one available for versions 0.48 and earlier.
- 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.
+config BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
+ bool "Allocate with Malloc"
- "Bss" end is usually not page-aligned. There is an unused space
- in the last page. Linker marks its start with the "_end" symbol.
+config BUSYBOX_FEATURE_BUFFERS_GO_ON_STACK
+ bool "Allocate on the Stack"
- 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.
+config BUSYBOX_FEATURE_BUFFERS_GO_IN_BSS
+ bool "Allocate in the .bss section"
- If you are getting a build error like this:
- appletlib.c:(.text.main+0xd): undefined reference to '_end'
- disable this option.
-
-config BUSYBOX_FEATURE_RTMINMAX
- bool "Support RTMIN[+n] and RTMAX[-n] signal names"
- default y
- help
- Support RTMIN[+n] and RTMAX[-n] signal names
- in kill, killall etc. This costs ~250 bytes.
+endchoice
config BUSYBOX_PASSWORD_MINLEN
int "Minimum password length"
default 6
range 5 32
help
- Minimum allowable password length.
+ Minimum allowable password length.
config BUSYBOX_MD5_SMALL
int "MD5: Trade bytes for speed (0:fast, 3:slow)"
- default 1
+ default 1 # all "fast or small" options default to small
+ range 0 3
+ help
+ Trade binary size versus speed for the md5 algorithm.
+ Approximate values running uClibc and hashing
+ linux-2.4.4.tar.bz2 were:
+ value user times (sec) text size (386)
+ 0 (fastest) 1.1 6144
+ 1 1.4 5392
+ 2 3.0 5088
+ 3 (smallest) 5.1 4912
+
+config BUSYBOX_SHA1_SMALL
+ int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+ default 3 # all "fast or small" options default to small
range 0 3
help
- Trade binary size versus speed for the md5sum algorithm.
- Approximate values running uClibc and hashing
- linux-2.4.4.tar.bz2 were:
- user times (sec) text size (386)
- 0 (fastest) 1.1 6144
- 1 1.4 5392
- 2 3.0 5088
- 3 (smallest) 5.1 4912
+ Trade binary size versus speed for the sha1 algorithm.
+ With FEATURE_COPYBUF_KB=64:
+ throughput MB/s size of sha1_process_block64
+ value 486 x86-64 486 x86-64
+ 0 440 485 3481 3502
+ 1 265 265 641 696
+ 2,3 220 210 342 364
+
+config BUSYBOX_SHA1_HWACCEL
+ bool "SHA1: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~590 bytes of code. Throughput
+ is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_SHA256_HWACCEL
+ bool "SHA256: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~1k bytes of code.
config BUSYBOX_SHA3_SMALL
- int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
- default 1
- 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_FEATURE_FAST_TOP
- bool "Faster /proc scanning code (+100 bytes)"
+ int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
+ default 1 # all "fast or small" options default to small
+ range 0 1
+ help
+ Trade binary size versus speed for the sha3 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_FEATURE_NON_POSIX_CP
+ bool "Non-POSIX, but safer, copying to special nodes"
default y
help
- This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
- but code size is slightly bigger.
+ With this option, "cp file symlink" will delete symlink
+ and create a regular file. This does not conform to POSIX,
+ but prevents a symlink attack.
+ Similarly, "cp file device" will not send file's data
+ to the device. (To do that, use "cat file >device")
-config BUSYBOX_FEATURE_ETC_NETWORKS
- bool "Support for /etc/networks"
+config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
+ bool "Give more precise messages when copy fails (cp, mv etc)"
default n
help
- Enable support for network names in /etc/networks. This is
- a rarely used feature which allows you to use names
- instead of IP/mask pairs in route command.
+ Error messages with this feature enabled:
+
+ $ cp file /does_not_exist/file
+ cp: cannot create '/does_not_exist/file': Path does not exist
+ $ cp file /vmlinuz/file
+ cp: cannot stat '/vmlinuz/file': Path has non-directory component
+
+ If this feature is not enabled, they will be, respectively:
+
+ cp: cannot create '/does_not_exist/file': No such file or directory
+ cp: cannot stat '/vmlinuz/file': Not a directory
+
+ This will cost you ~60 bytes.
+
+config BUSYBOX_FEATURE_USE_SENDFILE
+ bool "Use sendfile system call"
+ default y
+ help
+ When enabled, busybox will use the kernel sendfile() function
+ instead of read/write loops to copy data between file descriptors
+ (for example, cp command does this a lot).
+ If sendfile() doesn't work, copying code falls back to read/write
+ loop. sendfile() was originally implemented for faster I/O
+ from files to sockets, but since Linux 2.6.33 it was extended
+ to work for many more file types.
+
+config BUSYBOX_FEATURE_COPYBUF_KB
+ int "Copy buffer size, in kilobytes"
+ range 1 1024
+ default 4
+ help
+ Size of buffer used by cp, mv, install, wget etc.
+ Buffers which are 4 kb or less will be allocated on stack.
+ Bigger buffers will be allocated with mmap, with fallback to 4 kb
+ stack buffer if mmap fails.
+
+config BUSYBOX_MONOTONIC_SYSCALL
+ bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
+ default y
+ help
+ Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
+ time intervals (time, ping, traceroute etc need this).
+ Probably requires Linux 2.6+. If not selected, gettimeofday
+ will be used instead (which gives wrong results if date/time
+ is reset).
-config BUSYBOX_FEATURE_USE_TERMIOS
- bool "Use termios to manipulate the screen"
+config BUSYBOX_IOCTL_HEX2STR_ERROR
+ bool "Use ioctl names rather than hex values in error messages"
default y
- depends on BUSYBOX_MORE || BUSYBOX_TOP || BUSYBOX_POWERTOP
help
- This option allows utilities such as 'more' and 'top' to determine
- the size of the screen. If you leave this disabled, your utilities
- that display things on the screen will be especially primitive and
- will be unable to determine the current screen size, and will be
- unable to move the cursor.
+ Use ioctl names rather than hex values in error messages
+ (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
+ saves about 1400 bytes.
config BUSYBOX_FEATURE_EDITING
bool "Command line editing"
default y
help
- Enable line editing (mainly for shell command line).
+ Enable line editing (mainly for shell command line).
config BUSYBOX_FEATURE_EDITING_MAX_LEN
int "Maximum length of input"
@@ -115,17 +223,17 @@ config BUSYBOX_FEATURE_EDITING_MAX_LEN
default 1024
depends on BUSYBOX_FEATURE_EDITING
help
- Line editing code uses on-stack buffers for storage.
- You may want to decrease this parameter if your target machine
- benefits from smaller stack usage.
+ Line editing code uses on-stack buffers for storage.
+ You may want to decrease this parameter if your target machine
+ benefits from smaller stack usage.
config BUSYBOX_FEATURE_EDITING_VI
bool "vi-style line editing commands"
default n
depends on BUSYBOX_FEATURE_EDITING
help
- Enable vi-style line editing. In shells, this mode can be
- turned on and off with "set -o vi" and "set +o vi".
+ Enable vi-style line editing. In shells, this mode can be
+ turned on and off with "set -o vi" and "set +o vi".
config BUSYBOX_FEATURE_EDITING_HISTORY
int "History size"
@@ -134,141 +242,208 @@ config BUSYBOX_FEATURE_EDITING_HISTORY
default 255
depends on BUSYBOX_FEATURE_EDITING
help
- Specify command history size (0 - disable).
+ Specify command history size (0 - disable).
config BUSYBOX_FEATURE_EDITING_SAVEHISTORY
bool "History saving"
default y
depends on BUSYBOX_FEATURE_EDITING
help
- Enable history saving in shells.
+ Enable history saving in shells.
config BUSYBOX_FEATURE_EDITING_SAVE_ON_EXIT
bool "Save history on shell exit, not after every command"
default n
depends on BUSYBOX_FEATURE_EDITING_SAVEHISTORY
help
- Save history on shell exit, not after every command.
+ Save history on shell exit, not after every command.
config BUSYBOX_FEATURE_REVERSE_SEARCH
bool "Reverse history search"
default y
- depends on BUSYBOX_FEATURE_EDITING_SAVEHISTORY
+ depends on BUSYBOX_FEATURE_EDITING
help
- Enable readline-like Ctrl-R combination for reverse history search.
- Increases code by about 0.5k.
+ Enable readline-like Ctrl-R combination for reverse history search.
+ Increases code by about 0.5k.
config BUSYBOX_FEATURE_TAB_COMPLETION
bool "Tab completion"
default y
depends on BUSYBOX_FEATURE_EDITING
- help
- Enable tab completion.
config BUSYBOX_FEATURE_USERNAME_COMPLETION
bool "Username completion"
- default n
+ default y
depends on BUSYBOX_FEATURE_TAB_COMPLETION
- help
- Enable username completion.
config BUSYBOX_FEATURE_EDITING_FANCY_PROMPT
bool "Fancy shell prompts"
default y
depends on BUSYBOX_FEATURE_EDITING
help
- Setting this option allows for prompts to use things like \w and
- \$ and escape codes.
+ Setting this option allows for prompts to use things like \w and
+ \$ and escape codes.
+
+config BUSYBOX_FEATURE_EDITING_WINCH
+ bool "Enable automatic tracking of window size changes"
+ default y
+ depends on BUSYBOX_FEATURE_EDITING
config BUSYBOX_FEATURE_EDITING_ASK_TERMINAL
bool "Query cursor position from terminal"
default n
depends on BUSYBOX_FEATURE_EDITING
help
- Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
- current cursor position. This information is used to make line
- editing more robust in some cases.
- If you are not sure whether your terminals respond to this code
- correctly, or want to save on code size (about 400 bytes),
- then do not turn this option on.
+ Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
+ current cursor position. This information is used to make line
+ editing more robust in some cases.
+ If you are not sure whether your terminals respond to this code
+ correctly, or want to save on code size (about 400 bytes),
+ then do not turn this option on.
+
+config BUSYBOX_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 BUSYBOX_FEATURE_NON_POSIX_CP
- bool "Non-POSIX, but safer, copying to special nodes"
+config BUSYBOX_UNICODE_SUPPORT
+ bool "Support Unicode"
default y
help
- With this option, "cp file symlink" will delete symlink
- and create a regular file. This does not conform to POSIX,
- but prevents a symlink attack.
- Similarly, "cp file device" will not send file's data
- to the device. (To do that, use "cat file >device")
+ This makes various applets aware that one byte is not
+ one character on screen.
-config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
- bool "Give more precise messages when copy fails (cp, mv etc)"
- default n
- help
- Error messages with this feature enabled:
- $ cp file /does_not_exist/file
- cp: cannot create '/does_not_exist/file': Path does not exist
- $ cp file /vmlinuz/file
- cp: cannot stat '/vmlinuz/file': Path has non-directory component
- If this feature is not enabled, they will be, respectively:
- cp: cannot create '/does_not_exist/file': No such file or directory
- cp: cannot stat '/vmlinuz/file': Not a directory
- This will cost you ~60 bytes.
+ Busybox aims to eventually work correctly with Unicode displays.
+ Any older encodings are not guaranteed to work.
+ Probably by the time when busybox will be fully Unicode-clean,
+ other encodings will be mainly of historic interest.
-config BUSYBOX_FEATURE_COPYBUF_KB
- int "Copy buffer size, in kilobytes"
- range 1 1024
- default 4
+config BUSYBOX_UNICODE_USING_LOCALE
+ bool "Use libc routines for Unicode (else uses internal ones)"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT && BUSYBOX_LOCALE_SUPPORT
help
- Size of buffer used by cp, mv, install, wget etc.
- Buffers which are 4 kb or less will be allocated on stack.
- Bigger buffers will be allocated with mmap, with fallback to 4 kb
- stack buffer if mmap fails.
+ With this option on, Unicode support is implemented using libc
+ routines. Otherwise, internal implementation is used.
+ Internal implementation is smaller.
-config BUSYBOX_FEATURE_SKIP_ROOTFS
- bool "Skip rootfs in mount table"
- default y
+config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
+ bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
help
- Ignore rootfs entry in mount table.
+ With this option on, Unicode support is activated
+ only if locale-related variables have the value of the form
+ "xxxx.utf8"
- In Linux, kernel has a special filesystem, rootfs, which is initially
- mounted on /. It contains initramfs data, if kernel is configured
- to have one. Usually, another file system is mounted over / early
- in boot process, and therefore most tools which manipulate
- mount table, such as df, will skip rootfs entry.
+ Otherwise, Unicode support will be always enabled and active.
- However, some systems do not mount anything on /.
- If you need to configure busybox for one of these systems,
- you may find it useful to turn this option off to make df show
- initramfs statistics.
-
- Otherwise, choose Y.
+config BUSYBOX_SUBST_WCHAR
+ int "Character code to substitute unprintable characters with"
+ depends on BUSYBOX_UNICODE_SUPPORT
+ default 63
+ help
+ Typical values are 63 for '?' (works with any output device),
+ 30 for ASCII substitute control code,
+ 65533 (0xfffd) for Unicode replacement character.
+
+config BUSYBOX_LAST_SUPPORTED_WCHAR
+ int "Range of supported Unicode characters"
+ depends on BUSYBOX_UNICODE_SUPPORT
+ default 767
+ help
+ Any character with Unicode value bigger than this is assumed
+ to be non-printable on output device. Many applets replace
+ such characters with substitution character.
+
+ The idea is that many valid printable Unicode chars
+ nevertheless are not displayed correctly. Think about
+ combining charachers, double-wide hieroglyphs, obscure
+ characters in dozens of ancient scripts...
+ Many terminals, terminal emulators, xterms etc will fail
+ to handle them correctly. Choose the smallest value
+ which suits your needs.
+
+ Typical values are:
+ 126 - ASCII only
+ 767 (0x2ff) - there are no combining chars in [0..767] range
+ (the range includes Latin 1, Latin Ext. A and B),
+ code is ~700 bytes smaller for this case.
+ 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+ code is ~300 bytes smaller for this case.
+ 12799 (0x31ff) - nearly all non-ideographic characters are
+ available in [0..12799] range, including
+ East Asian scripts like katakana, hiragana, hangul,
+ bopomofo...
+ 0 - off, any valid printable Unicode character will be printed.
+
+config BUSYBOX_UNICODE_COMBINING_WCHARS
+ bool "Allow zero-width Unicode characters on output"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT
+ help
+ With this option off, any Unicode char with width of 0
+ is substituted on output.
-config BUSYBOX_MONOTONIC_SYSCALL
- bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
- default y
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_UNICODE_WIDE_WCHARS
+ bool "Allow wide Unicode characters on output"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT
help
- Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
- time intervals (time, ping, traceroute etc need this).
- Probably requires Linux 2.6+. If not selected, gettimeofday
- will be used instead (which gives wrong results if date/time
- is reset).
+ With this option off, any Unicode char with width > 1
+ is substituted on output.
-config BUSYBOX_IOCTL_HEX2STR_ERROR
- bool "Use ioctl names rather than hex values in error messages"
- default y
+config BUSYBOX_UNICODE_BIDI_SUPPORT
+ bool "Bidirectional character-aware line input"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
help
- Use ioctl names rather than hex values in error messages
- (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
- saves about 1400 bytes.
+ With this option on, right-to-left Unicode characters
+ are treated differently on input (e.g. cursor movement).
-config BUSYBOX_FEATURE_HWIB
- bool "Support infiniband HW"
+config BUSYBOX_UNICODE_NEUTRAL_TABLE
+ bool "In bidi input, support non-ASCII neutral chars too"
default n
+ depends on BUSYBOX_UNICODE_BIDI_SUPPORT
help
- Support for printing infiniband addresses in
- network applets.
+ In most cases it's enough to treat only ASCII non-letters
+ (i.e. punctuation, numbers and space) as characters
+ with neutral directionality.
+ With this option on, more extensive (and bigger) table
+ of neutral chars will be used.
+
+config BUSYBOX_UNICODE_PRESERVE_BROKEN
+ bool "Make it possible to enter sequences of chars which are not Unicode"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT
+ help
+ With this option on, on line-editing input (such as used by shells)
+ invalid UTF-8 bytes are not substituted with the selected
+ substitution character.
+ For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+ at shell prompt will list file named 0xff (single char name
+ with char value 255), not file named '?'.
+
+choice
+ prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+ default BUSYBOX_TRY_LOOP_CONFIGURE
+ help
+ LOOP_CONFIGURE is added to Linux 5.8
+ https://lwn.net/Articles/820408/
+ This allows userspace to completely setup a loop device with a single
+ ioctl, removing the in-between state where the device can be partially
+ configured - eg the loop device has a backing file associated with it,
+ but is reading from the wrong offset.
+
+config BUSYBOX_LOOP_CONFIGURE
+ bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
+
+config BUSYBOX_NO_LOOP_CONFIGURE
+ bool "use LOOP_SET_FD + LOOP_SET_STATUS"
+
+config BUSYBOX_TRY_LOOP_CONFIGURE
+ bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
-endmenu
+endchoice