busybox: update to 1.36.0
[openwrt/openwrt.git] / package / utils / busybox / config / libbb / Config.in
index fbccae580ad94b714a3bd3a2e90ed5bdf2efc6bb..b3a83b9b0852790b8c8385d989f9976093bea2c4 100644 (file)
 # 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_CONFIG_FEATURE_SYSTEMD
-       bool "Enable systemd support"
-       default BUSYBOX_DEFAULT_FEATURE_SYSTEMD
+config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
+       bool "Use the end of BSS page"
+       default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
        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.
+       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_FLOAT_DURATION
+       bool "Enable fractional duration arguments"
+       default BUSYBOX_DEFAULT_FLOAT_DURATION
+       help
+       Allow sleep N.NNN, top -d N.NNN etc.
 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
        bool "Support RTMIN[+n] and RTMAX[-n] signal names"
        default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
        help
-         Support RTMIN[+n] and RTMAX[-n] signal names
-         in kill, killall etc. This costs ~250 bytes.
+       Support RTMIN[+n] and RTMAX[-n] signal names
+       in kill, killall etc. This costs ~250 bytes.
+
+config BUSYBOX_CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+       bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
+       default BUSYBOX_DEFAULT_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+       depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
+       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.
+
+config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
+       bool "Allocate with Malloc"
+
+config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
+       bool "Allocate on the Stack"
+
+config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
+       bool "Allocate in the .bss section"
+
+endchoice
 
 config BUSYBOX_CONFIG_PASSWORD_MINLEN
        int "Minimum password length"
        default BUSYBOX_DEFAULT_PASSWORD_MINLEN
        range 5 32
        help
-         Minimum allowable password length.
+       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 BUSYBOX_DEFAULT_MD5_SIZE_VS_SPEED
+       default BUSYBOX_DEFAULT_MD5_SMALL  # 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_CONFIG_SHA1_SMALL
+       int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+       default BUSYBOX_DEFAULT_SHA1_SMALL  # 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
-
-config BUSYBOX_CONFIG_FEATURE_FAST_TOP
-       bool "Faster /proc scanning code (+100 bytes)"
-       default BUSYBOX_DEFAULT_FEATURE_FAST_TOP
-       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 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
-         instead of IP/mask pairs in route command.
-
-config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
-       bool "Use termios to manipulate the screen"
-       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
-         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.
+       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_CONFIG_SHA1_HWACCEL
+       bool "SHA1: Use hardware accelerated instructions if possible"
+       default BUSYBOX_DEFAULT_SHA1_HWACCEL
+       help
+       On x86, this adds ~590 bytes of code. Throughput
+       is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_CONFIG_SHA256_HWACCEL
+       bool "SHA256: Use hardware accelerated instructions if possible"
+       default BUSYBOX_DEFAULT_SHA256_HWACCEL
+       help
+       On x86, this adds ~1k bytes of code.
+
+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 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_CONFIG_FEATURE_NON_POSIX_CP
+       bool "Non-POSIX, but safer, copying to special nodes"
+       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,
+       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_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
+       bool "Give more precise messages when copy fails (cp, mv etc)"
+       default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
+       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.
+
+config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
+       bool "Use sendfile system call"
+       default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
+       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_CONFIG_FEATURE_COPYBUF_KB
+       int "Copy buffer size, in kilobytes"
+       range 1 1024
+       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.
+       Bigger buffers will be allocated with mmap, with fallback to 4 kb
+       stack buffer if mmap fails.
+
+config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
+       bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
+       default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
+       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_CONFIG_IOCTL_HEX2STR_ERROR
+       bool "Use ioctl names rather than hex values in error messages"
+       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
+       saves about 1400 bytes.
 
 config BUSYBOX_CONFIG_FEATURE_EDITING
        bool "Command line editing"
        default BUSYBOX_DEFAULT_FEATURE_EDITING
        help
-         Enable line editing (mainly for shell command line).
+       Enable line editing (mainly for shell command line).
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
        int "Maximum length of input"
@@ -80,17 +223,17 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
        default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
        depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_EDITING_VI
        bool "vi-style line editing commands"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
        depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_EDITING_HISTORY
        int "History size"
@@ -99,134 +242,208 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
        default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Specify command history size (0 - disable).
+       Specify command history size (0 - disable).
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
        bool "History saving"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
-         Enable history saving in shells.
+       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 BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
-       depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+       depends on BUSYBOX_CONFIG_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_CONFIG_FEATURE_TAB_COMPLETION
        bool "Tab completion"
        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 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 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
-         \$ and escape codes.
+       Setting this option allows for prompts to use things like \w and
+       \$ and escape codes.
+
+config BUSYBOX_CONFIG_FEATURE_EDITING_WINCH
+       bool "Enable automatic tracking of window size changes"
+       default BUSYBOX_DEFAULT_FEATURE_EDITING_WINCH
+       depends on BUSYBOX_CONFIG_FEATURE_EDITING
 
 config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
        bool "Query cursor position from terminal"
        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
-         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_CONFIG_FEATURE_NON_POSIX_CP
-       bool "Non-POSIX, but safer, copying to special nodes"
-       default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
+config BUSYBOX_CONFIG_LOCALE_SUPPORT
+       bool "Enable locale support (system needs locale for this to work)"
+       default BUSYBOX_DEFAULT_LOCALE_SUPPORT
        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")
+       Enable this if your system has locale support and you would like
+       busybox to support locale settings.
 
-config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
-       bool "Give more precise messages when copy fails (cp, mv etc)"
-       default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
+config BUSYBOX_CONFIG_UNICODE_SUPPORT
+       bool "Support Unicode"
+       default BUSYBOX_DEFAULT_UNICODE_SUPPORT
        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.
+       This makes various applets aware that one byte is not
+       one character on screen.
 
-config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
-       int "Copy buffer size, in kilobytes"
-       range 1 1024
-       default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
+       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_CONFIG_UNICODE_USING_LOCALE
+       bool "Use libc routines for Unicode (else uses internal ones)"
+       default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
+       help
+       With this option on, Unicode support is implemented using libc
+       routines. Otherwise, internal implementation is used.
+       Internal implementation is smaller.
+
+config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
+       bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
+       default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        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 activated
+       only if locale-related variables have the value of the form
+       "xxxx.utf8"
 
-config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
-       bool "Skip rootfs in mount table"
-       default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
+       Otherwise, Unicode support will be always enabled and active.
+
+config BUSYBOX_CONFIG_SUBST_WCHAR
+       int "Character code to substitute unprintable characters with"
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       default BUSYBOX_DEFAULT_SUBST_WCHAR
        help
-         Ignore rootfs entry in mount table.
+       Typical values are 63 for '?' (works with any output device),
+       30 for ASCII substitute control code,
+       65533 (0xfffd) for Unicode replacement character.
 
-         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.
+config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
+       int "Range of supported Unicode characters"
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
+       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.
 
-         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.
+       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.
 
-         Otherwise, choose Y.
+       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_CONFIG_MONOTONIC_SYSCALL
-       bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
-       default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
-       select BUSYBOX_CONFIG_PLATFORM_LINUX
+config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
+       bool "Allow zero-width Unicode characters on output"
+       default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
+       depends on BUSYBOX_CONFIG_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 of 0
+       is substituted on output.
 
-config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
-       bool "Use ioctl names rather than hex values in error messages"
-       default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
+config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
+       bool "Allow wide Unicode characters on output"
+       default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
+       help
+       With this option off, any Unicode char with width > 1
+       is substituted on output.
+
+config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
+       bool "Bidirectional character-aware line input"
+       default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
+       help
+       With this option on, right-to-left Unicode characters
+       are treated differently on input (e.g. cursor movement).
+
+config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
+       bool "In bidi input, support non-ASCII neutral chars too"
+       default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
+       depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
        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.
+       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_CONFIG_FEATURE_HWIB
-       bool "Support infiniband HW"
-       default BUSYBOX_DEFAULT_FEATURE_HWIB
+config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
+       bool "Make it possible to enter sequences of chars which are not Unicode"
+       default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
+       depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
-         Support for printing infiniband addresses in
-         network applets.
+       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_CONFIG_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_CONFIG_LOOP_CONFIGURE
+       bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
+
+config BUSYBOX_CONFIG_NO_LOOP_CONFIGURE
+       bool "use LOOP_SET_FD + LOOP_SET_STATUS"
+
+config BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+       bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
 
-endmenu
+endchoice