config system: move some options closer to relevalnt tool subdirectories

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2021-10-12 13:23:29 +02:00
parent 7c3e96d4b3
commit 94c78aa0b9
6 changed files with 132 additions and 131 deletions

View File

@ -5,10 +5,6 @@
menu "Coreutils"
INSERT
comment "Common options"
config FEATURE_VERBOSE
bool "Support verbose options (usually -v) for various applets"
default y
@ -17,6 +13,19 @@ config FEATURE_VERBOSE
Also enables long option (--verbose) if it exists.
Without this option, -v is accepted but ignored.
comment "Common options for date and touch"
config FEATURE_TIMEZONE
bool "Allow timezone in dates"
default y
depends on DESKTOP
help
Permit the use of timezones when parsing user-provided data
strings, e.g. '1996-04-09 12:45:00 -0500'.
This requires support for the '%z' extension to strptime() which
may not be available in all implementations.
comment "Common options for cp and mv"
depends on CP || MV
@ -37,4 +46,6 @@ config FEATURE_HUMAN_READABLE
help
Allow df, du, and ls to have human readable output.
INSERT
endmenu

View File

@ -32,6 +32,26 @@
//config: -a Show all filesystems
//config: -i Inodes
//config: -B <SIZE> Blocksize
//config:
//config:config FEATURE_SKIP_ROOTFS
//config: bool "Skip rootfs in mount table"
//config: default y
//config: depends on DF
//config: help
//config: Ignore rootfs entry in mount table.
//config:
//config: In Linux, kernel has a special filesystem, rootfs, which is initially
//config: mounted on /. It contains initramfs data, if kernel is configured
//config: to have one. Usually, another file system is mounted over / early
//config: in boot process, and therefore most tools which manipulate
//config: mount table, such as df, will skip rootfs entry.
//config:
//config: However, some systems do not mount anything on /.
//config: If you need to configure busybox for one of these systems,
//config: you may find it useful to turn this option off to make df show
//config: initramfs statistics.
//config:
//config: Otherwise, choose Y.
//applet:IF_DF(APPLET_NOEXEC(df, df, BB_DIR_BIN, BB_SUID_DROP, df))

View File

@ -61,32 +61,73 @@ config SHA3_SMALL
64-bit x86: +270 bytes of code, 45% faster
32-bit x86: +450 bytes of code, 75% faster
config FEATURE_FAST_TOP
bool "Faster /proc scanning code (+100 bytes)"
default n # all "fast or small" options default to small
config 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 FEATURE_ETC_NETWORKS
bool "Support /etc/networks"
config 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:
config FEATURE_ETC_SERVICES
bool "Consult /etc/services even for well-known ports"
default n
$ 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 FEATURE_USE_SENDFILE
bool "Use sendfile system call"
default y
help
Look up e.g. "telnet" and "http" in /etc/services file
instead of assuming ports 23 and 80.
This is almost never necessary (everybody uses standard ports),
and it makes sense to avoid reading this file.
If you disable this option, in the cases where port is explicitly
specified as a service name (e.g. "telnet HOST PORTNAME"),
it will still be looked up in /etc/services.
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 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 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 IOCTL_HEX2STR_ERROR
bool "Use ioctl names rather than hex values in error messages"
default y
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 FEATURE_EDITING
bool "Command line editing"
@ -302,107 +343,3 @@ config UNICODE_PRESERVE_BROKEN
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 '?'.
config FEATURE_NON_POSIX_CP
bool "Non-POSIX, but safer, copying to special nodes"
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")
config 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.
config 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 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 FEATURE_SKIP_ROOTFS
bool "Skip rootfs in mount table"
default y
help
Ignore rootfs entry in mount table.
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.
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 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 IOCTL_HEX2STR_ERROR
bool "Use ioctl names rather than hex values in error messages"
default y
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 FEATURE_HWIB
bool "Support infiniband HW"
default y
help
Support for printing infiniband addresses in network applets.
config FEATURE_TIMEZONE
bool "Allow timezone in dates"
default y
depends on DESKTOP
help
Permit the use of timezones when parsing user-provided data
strings, e.g. '1996-04-09 12:45:00 -0500'.
This requires support for the '%z' extension to strptime() which
may not be available in all implementations.

View File

@ -1,7 +1,5 @@
menu "Mail Utilities"
INSERT
config FEATURE_MIME_CHARSET
string "Default charset"
default "us-ascii"
@ -9,4 +7,6 @@ config FEATURE_MIME_CHARSET
help
Default charset of the message.
INSERT
endmenu

View File

@ -46,6 +46,32 @@ config VERBOSE_RESOLUTION_ERRORS
"can't resolve 'hostname.com'" and want to know more.
This may increase size of your executable a bit.
config FEATURE_ETC_NETWORKS
bool "Support /etc/networks"
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.
config FEATURE_ETC_SERVICES
bool "Consult /etc/services even for well-known ports"
default n
help
Look up e.g. "telnet" and "http" in /etc/services file
instead of assuming ports 23 and 80.
This is almost never necessary (everybody uses standard ports),
and it makes sense to avoid reading this file.
If you disable this option, in the cases where port is explicitly
specified as a service name (e.g. "telnet HOST PORTNAME"),
it will still be looked up in /etc/services.
config FEATURE_HWIB
bool "Support infiniband HW"
default y
help
Support for printing infiniband addresses in network applets.
config FEATURE_TLS_SHA1
bool "In TLS code, support ciphers which use deprecated SHA1"
depends on TLS

View File

@ -5,7 +5,12 @@
menu "Process Utilities"
INSERT
config FEATURE_FAST_TOP
bool "Faster /proc scanning code (+100 bytes)"
default n # 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 FEATURE_SHOW_THREADS
bool "Support thread display in ps/pstree/top"
@ -15,4 +20,6 @@ config FEATURE_SHOW_THREADS
Enables the ps -T option, showing of threads in pstree,
and 'h' command in top.
INSERT
endmenu