busybox: update to 1.36.0
[openwrt/openwrt.git] / package / utils / busybox / config / libbb / Config.in
index 5be8aedc88ae5bd8f657c25e5a40d9b71c662967..b3a83b9b0852790b8c8385d989f9976093bea2c4 100644 (file)
@@ -1,10 +1,10 @@
 # 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_USE_BSS_TAIL
        bool "Use the end of BSS page"
@@ -19,6 +19,7 @@ config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
 
        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
@@ -36,8 +37,13 @@ config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
        is known only after final link.
 
        If you are getting a build error like this:
-               appletlib.c:(.text.main+0xd): undefined reference to '_end'
+               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
@@ -45,18 +51,29 @@ config BUSYBOX_CONFIG_FEATURE_RTMINMAX
        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:
+       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.
+       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 BusyBox versions 0.48 and
-           earlier.
+       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"
@@ -81,39 +98,118 @@ config BUSYBOX_CONFIG_MD5_SMALL
        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.
+       Trade binary size versus speed for the md5 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
+       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 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 sha3sum algorithm.
+       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_FAST_TOP
-       bool "Faster /proc scanning code (+100 bytes)"
-       default BUSYBOX_DEFAULT_FEATURE_FAST_TOP  # all "fast or small" options default to small
+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
-       This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
-       but code size is slightly bigger.
+       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_FEATURE_ETC_NETWORKS
-       bool "Support /etc/networks"
-       default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
+config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
+       bool "Use ioctl names rather than hex values in error messages"
+       default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
        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.
+       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"
@@ -188,6 +284,11 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
        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
@@ -325,96 +426,24 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
        at shell prompt will list file named 0xff (single char name
        with char value 255), not file named '?'.
 
-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
-       select BUSYBOX_CONFIG_PLATFORM_LINUX
-       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_FEATURE_SKIP_ROOTFS
-       bool "Skip rootfs in mount table"
-       default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
+choice
+       prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+       default BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
        help
-       Ignore rootfs entry in mount table.
+       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.
 
-       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_LOOP_CONFIGURE
+       bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
 
-       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.
+config BUSYBOX_CONFIG_NO_LOOP_CONFIGURE
+       bool "use LOOP_SET_FD + LOOP_SET_STATUS"
 
-       Otherwise, choose Y.
+config BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+       bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
 
-config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
-       bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
-       default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
-       select BUSYBOX_CONFIG_PLATFORM_LINUX
-       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_HWIB
-       bool "Support infiniband HW"
-       default BUSYBOX_DEFAULT_FEATURE_HWIB
-       help
-       Support for printing infiniband addresses in
-       network applets.
-
-endmenu
+endchoice