# 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"
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
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
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"
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"
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
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