1 # DO NOT EDIT. This file is generated from Config.src
3 # For a description of the syntax of this configuration file,
4 # see scripts/kbuild/config-language.txt.
7 menu "Busybox Library Tuning"
9 config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
10 bool "Use the end of BSS page"
11 default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
13 Attempt to reclaim a small unused part of BSS.
15 Executables have the following parts:
16 = read-only executable code and constants, also known as "text"
18 = non-initialized (zeroed on demand) data, also known as "bss"
20 At link time, "text" is padded to a full page. At runtime, all "text"
21 pages are mapped RO and executable.
22 "Data" starts on the next page boundary, but is not padded
23 to a full page at the end. "Bss" starts wherever "data" ends.
24 At runtime, "data" pages are mapped RW and they are file-backed
25 (this includes a small portion of "bss" which may live in the last
26 partial page of "data").
27 Pages which are fully in "bss" are mapped to anonymous memory.
29 "Bss" end is usually not page-aligned. There is an unused space
30 in the last page. Linker marks its start with the "_end" symbol.
32 This option will attempt to use that space for bb_common_bufsiz1[]
33 array. If it fits after _end, it will be used, and COMMON_BUFSIZE
34 will be enlarged from its guaranteed minimum size of 1 kbyte.
35 This may require recompilation a second time, since value of _end
36 is known only after final link.
38 If you are getting a build error like this:
39 appletlib.c:(.text.main+0xd): undefined reference to '_end'
41 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
42 bool "Support RTMIN[+n] and RTMAX[-n] signal names"
43 default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
45 Support RTMIN[+n] and RTMAX[-n] signal names
46 in kill, killall etc. This costs ~250 bytes.
49 prompt "Buffer allocation policy"
50 default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
52 There are 3 ways BusyBox can handle buffer allocations:
53 - Use malloc. This costs code size for the call to xmalloc.
54 - Put them on stack. For some very small machines with limited stack
55 space, this can be deadly. For most folks, this works just fine.
56 - Put them in BSS. This works beautifully for computers with a real
57 MMU (and OS support), but wastes runtime RAM for uCLinux. This
58 behavior was the only one available for BusyBox versions 0.48 and
61 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
62 bool "Allocate with Malloc"
64 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
65 bool "Allocate on the Stack"
67 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
68 bool "Allocate in the .bss section"
72 config BUSYBOX_CONFIG_PASSWORD_MINLEN
73 int "Minimum password length"
74 default BUSYBOX_DEFAULT_PASSWORD_MINLEN
77 Minimum allowable password length.
79 config BUSYBOX_CONFIG_MD5_SMALL
80 int "MD5: Trade bytes for speed (0:fast, 3:slow)"
81 default BUSYBOX_DEFAULT_MD5_SMALL # all "fast or small" options default to small
84 Trade binary size versus speed for the md5sum algorithm.
85 Approximate values running uClibc and hashing
86 linux-2.4.4.tar.bz2 were:
87 user times (sec) text size (386)
93 config BUSYBOX_CONFIG_SHA3_SMALL
94 int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
95 default BUSYBOX_DEFAULT_SHA3_SMALL # all "fast or small" options default to small
98 Trade binary size versus speed for the sha3sum algorithm.
99 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
100 64-bit x86: +270 bytes of code, 45% faster
101 32-bit x86: +450 bytes of code, 75% faster
103 config BUSYBOX_CONFIG_FEATURE_FAST_TOP
104 bool "Faster /proc scanning code (+100 bytes)"
105 default BUSYBOX_DEFAULT_FEATURE_FAST_TOP # all "fast or small" options default to small
107 This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
108 but code size is slightly bigger.
110 config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
111 bool "Support for /etc/networks"
112 default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
114 Enable support for network names in /etc/networks. This is
115 a rarely used feature which allows you to use names
116 instead of IP/mask pairs in route command.
118 config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
119 bool "Use termios to manipulate the screen"
120 default BUSYBOX_DEFAULT_FEATURE_USE_TERMIOS
121 depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_POWERTOP
123 This option allows utilities such as 'more' and 'top' to determine
124 the size of the screen. If you leave this disabled, your utilities
125 that display things on the screen will be especially primitive and
126 will be unable to determine the current screen size, and will be
127 unable to move the cursor.
129 config BUSYBOX_CONFIG_FEATURE_EDITING
130 bool "Command line editing"
131 default BUSYBOX_DEFAULT_FEATURE_EDITING
133 Enable line editing (mainly for shell command line).
135 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
136 int "Maximum length of input"
138 default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
139 depends on BUSYBOX_CONFIG_FEATURE_EDITING
141 Line editing code uses on-stack buffers for storage.
142 You may want to decrease this parameter if your target machine
143 benefits from smaller stack usage.
145 config BUSYBOX_CONFIG_FEATURE_EDITING_VI
146 bool "vi-style line editing commands"
147 default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
148 depends on BUSYBOX_CONFIG_FEATURE_EDITING
150 Enable vi-style line editing. In shells, this mode can be
151 turned on and off with "set -o vi" and "set +o vi".
153 config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
155 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
157 default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
158 depends on BUSYBOX_CONFIG_FEATURE_EDITING
160 Specify command history size (0 - disable).
162 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
163 bool "History saving"
164 default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
165 depends on BUSYBOX_CONFIG_FEATURE_EDITING
167 Enable history saving in shells.
169 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
170 bool "Save history on shell exit, not after every command"
171 default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
172 depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
174 Save history on shell exit, not after every command.
176 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
177 bool "Reverse history search"
178 default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
179 depends on BUSYBOX_CONFIG_FEATURE_EDITING
181 Enable readline-like Ctrl-R combination for reverse history search.
182 Increases code by about 0.5k.
184 config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
185 bool "Tab completion"
186 default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
187 depends on BUSYBOX_CONFIG_FEATURE_EDITING
189 Enable tab completion.
191 config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
192 bool "Username completion"
193 default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
194 depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
196 Enable username completion.
198 config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
199 bool "Fancy shell prompts"
200 default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
201 depends on BUSYBOX_CONFIG_FEATURE_EDITING
203 Setting this option allows for prompts to use things like \w and
206 config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
207 bool "Query cursor position from terminal"
208 default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
209 depends on BUSYBOX_CONFIG_FEATURE_EDITING
211 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
212 current cursor position. This information is used to make line
213 editing more robust in some cases.
214 If you are not sure whether your terminals respond to this code
215 correctly, or want to save on code size (about 400 bytes),
216 then do not turn this option on.
218 config BUSYBOX_CONFIG_LOCALE_SUPPORT
219 bool "Enable locale support (system needs locale for this to work)"
220 default BUSYBOX_DEFAULT_LOCALE_SUPPORT
222 Enable this if your system has locale support and you would like
223 busybox to support locale settings.
225 config BUSYBOX_CONFIG_UNICODE_SUPPORT
226 bool "Support Unicode"
227 default BUSYBOX_DEFAULT_UNICODE_SUPPORT
229 This makes various applets aware that one byte is not
230 one character on screen.
232 Busybox aims to eventually work correctly with Unicode displays.
233 Any older encodings are not guaranteed to work.
234 Probably by the time when busybox will be fully Unicode-clean,
235 other encodings will be mainly of historic interest.
237 config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
238 bool "Use libc routines for Unicode (else uses internal ones)"
239 default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
240 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
242 With this option on, Unicode support is implemented using libc
243 routines. Otherwise, internal implementation is used.
244 Internal implementation is smaller.
246 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
247 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
248 default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
249 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
251 With this option on, Unicode support is activated
252 only if locale-related variables have the value of the form
255 Otherwise, Unicode support will be always enabled and active.
257 config BUSYBOX_CONFIG_SUBST_WCHAR
258 int "Character code to substitute unprintable characters with"
259 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
260 default BUSYBOX_DEFAULT_SUBST_WCHAR
262 Typical values are 63 for '?' (works with any output device),
263 30 for ASCII substitute control code,
264 65533 (0xfffd) for Unicode replacement character.
266 config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
267 int "Range of supported Unicode characters"
268 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
269 default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
271 Any character with Unicode value bigger than this is assumed
272 to be non-printable on output device. Many applets replace
273 such characters with substitution character.
275 The idea is that many valid printable Unicode chars
276 nevertheless are not displayed correctly. Think about
277 combining charachers, double-wide hieroglyphs, obscure
278 characters in dozens of ancient scripts...
279 Many terminals, terminal emulators, xterms etc will fail
280 to handle them correctly. Choose the smallest value
281 which suits your needs.
285 767 (0x2ff) - there are no combining chars in [0..767] range
286 (the range includes Latin 1, Latin Ext. A and B),
287 code is ~700 bytes smaller for this case.
288 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
289 code is ~300 bytes smaller for this case.
290 12799 (0x31ff) - nearly all non-ideographic characters are
291 available in [0..12799] range, including
292 East Asian scripts like katakana, hiragana, hangul,
294 0 - off, any valid printable Unicode character will be printed.
296 config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
297 bool "Allow zero-width Unicode characters on output"
298 default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
299 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
301 With this option off, any Unicode char with width of 0
302 is substituted on output.
304 config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
305 bool "Allow wide Unicode characters on output"
306 default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
307 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
309 With this option off, any Unicode char with width > 1
310 is substituted on output.
312 config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
313 bool "Bidirectional character-aware line input"
314 default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
315 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
317 With this option on, right-to-left Unicode characters
318 are treated differently on input (e.g. cursor movement).
320 config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
321 bool "In bidi input, support non-ASCII neutral chars too"
322 default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
323 depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
325 In most cases it's enough to treat only ASCII non-letters
326 (i.e. punctuation, numbers and space) as characters
327 with neutral directionality.
328 With this option on, more extensive (and bigger) table
329 of neutral chars will be used.
331 config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
332 bool "Make it possible to enter sequences of chars which are not Unicode"
333 default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
334 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
336 With this option on, on line-editing input (such as used by shells)
337 invalid UTF-8 bytes are not substituted with the selected
338 substitution character.
339 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
340 at shell prompt will list file named 0xff (single char name
341 with char value 255), not file named '?'.
343 config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
344 bool "Non-POSIX, but safer, copying to special nodes"
345 default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
347 With this option, "cp file symlink" will delete symlink
348 and create a regular file. This does not conform to POSIX,
349 but prevents a symlink attack.
350 Similarly, "cp file device" will not send file's data
351 to the device. (To do that, use "cat file >device")
353 config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
354 bool "Give more precise messages when copy fails (cp, mv etc)"
355 default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
357 Error messages with this feature enabled:
358 $ cp file /does_not_exist/file
359 cp: cannot create '/does_not_exist/file': Path does not exist
360 $ cp file /vmlinuz/file
361 cp: cannot stat '/vmlinuz/file': Path has non-directory component
362 If this feature is not enabled, they will be, respectively:
363 cp: cannot create '/does_not_exist/file': No such file or directory
364 cp: cannot stat '/vmlinuz/file': Not a directory
365 This will cost you ~60 bytes.
367 config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
368 bool "Use sendfile system call"
369 default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
370 select BUSYBOX_CONFIG_PLATFORM_LINUX
372 When enabled, busybox will use the kernel sendfile() function
373 instead of read/write loops to copy data between file descriptors
374 (for example, cp command does this a lot).
375 If sendfile() doesn't work, copying code falls back to read/write
376 loop. sendfile() was originally implemented for faster I/O
377 from files to sockets, but since Linux 2.6.33 it was extended
378 to work for many more file types.
380 config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
381 int "Copy buffer size, in kilobytes"
383 default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
385 Size of buffer used by cp, mv, install, wget etc.
386 Buffers which are 4 kb or less will be allocated on stack.
387 Bigger buffers will be allocated with mmap, with fallback to 4 kb
388 stack buffer if mmap fails.
390 config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
391 bool "Skip rootfs in mount table"
392 default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
394 Ignore rootfs entry in mount table.
396 In Linux, kernel has a special filesystem, rootfs, which is initially
397 mounted on /. It contains initramfs data, if kernel is configured
398 to have one. Usually, another file system is mounted over / early
399 in boot process, and therefore most tools which manipulate
400 mount table, such as df, will skip rootfs entry.
402 However, some systems do not mount anything on /.
403 If you need to configure busybox for one of these systems,
404 you may find it useful to turn this option off to make df show
405 initramfs statistics.
409 config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
410 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
411 default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
412 select BUSYBOX_CONFIG_PLATFORM_LINUX
414 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
415 time intervals (time, ping, traceroute etc need this).
416 Probably requires Linux 2.6+. If not selected, gettimeofday
417 will be used instead (which gives wrong results if date/time
420 config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
421 bool "Use ioctl names rather than hex values in error messages"
422 default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
424 Use ioctl names rather than hex values in error messages
425 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
426 saves about 1400 bytes.
428 config BUSYBOX_CONFIG_FEATURE_HWIB
429 bool "Support infiniband HW"
430 default BUSYBOX_DEFAULT_FEATURE_HWIB
432 Support for printing infiniband addresses in