|
@@ -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
|
|
|
+ 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
|
|
|
- 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.
|
|
|
+ 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.
|