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 /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_EDITING
119 bool "Command line editing"
120 default BUSYBOX_DEFAULT_FEATURE_EDITING
122 Enable line editing (mainly for shell command line).
124 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
125 int "Maximum length of input"
127 default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
128 depends on BUSYBOX_CONFIG_FEATURE_EDITING
130 Line editing code uses on-stack buffers for storage.
131 You may want to decrease this parameter if your target machine
132 benefits from smaller stack usage.
134 config BUSYBOX_CONFIG_FEATURE_EDITING_VI
135 bool "vi-style line editing commands"
136 default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
137 depends on BUSYBOX_CONFIG_FEATURE_EDITING
139 Enable vi-style line editing. In shells, this mode can be
140 turned on and off with "set -o vi" and "set +o vi".
142 config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
144 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
146 default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
147 depends on BUSYBOX_CONFIG_FEATURE_EDITING
149 Specify command history size (0 - disable).
151 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
152 bool "History saving"
153 default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
154 depends on BUSYBOX_CONFIG_FEATURE_EDITING
156 Enable history saving in shells.
158 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
159 bool "Save history on shell exit, not after every command"
160 default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
161 depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
163 Save history on shell exit, not after every command.
165 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
166 bool "Reverse history search"
167 default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
168 depends on BUSYBOX_CONFIG_FEATURE_EDITING
170 Enable readline-like Ctrl-R combination for reverse history search.
171 Increases code by about 0.5k.
173 config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
174 bool "Tab completion"
175 default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
176 depends on BUSYBOX_CONFIG_FEATURE_EDITING
178 config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
179 bool "Username completion"
180 default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
181 depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
183 config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
184 bool "Fancy shell prompts"
185 default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
186 depends on BUSYBOX_CONFIG_FEATURE_EDITING
188 Setting this option allows for prompts to use things like \w and
191 config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
192 bool "Query cursor position from terminal"
193 default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
194 depends on BUSYBOX_CONFIG_FEATURE_EDITING
196 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
197 current cursor position. This information is used to make line
198 editing more robust in some cases.
199 If you are not sure whether your terminals respond to this code
200 correctly, or want to save on code size (about 400 bytes),
201 then do not turn this option on.
203 config BUSYBOX_CONFIG_LOCALE_SUPPORT
204 bool "Enable locale support (system needs locale for this to work)"
205 default BUSYBOX_DEFAULT_LOCALE_SUPPORT
207 Enable this if your system has locale support and you would like
208 busybox to support locale settings.
210 config BUSYBOX_CONFIG_UNICODE_SUPPORT
211 bool "Support Unicode"
212 default BUSYBOX_DEFAULT_UNICODE_SUPPORT
214 This makes various applets aware that one byte is not
215 one character on screen.
217 Busybox aims to eventually work correctly with Unicode displays.
218 Any older encodings are not guaranteed to work.
219 Probably by the time when busybox will be fully Unicode-clean,
220 other encodings will be mainly of historic interest.
222 config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
223 bool "Use libc routines for Unicode (else uses internal ones)"
224 default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
225 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
227 With this option on, Unicode support is implemented using libc
228 routines. Otherwise, internal implementation is used.
229 Internal implementation is smaller.
231 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
232 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
233 default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
234 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
236 With this option on, Unicode support is activated
237 only if locale-related variables have the value of the form
240 Otherwise, Unicode support will be always enabled and active.
242 config BUSYBOX_CONFIG_SUBST_WCHAR
243 int "Character code to substitute unprintable characters with"
244 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
245 default BUSYBOX_DEFAULT_SUBST_WCHAR
247 Typical values are 63 for '?' (works with any output device),
248 30 for ASCII substitute control code,
249 65533 (0xfffd) for Unicode replacement character.
251 config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
252 int "Range of supported Unicode characters"
253 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
254 default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
256 Any character with Unicode value bigger than this is assumed
257 to be non-printable on output device. Many applets replace
258 such characters with substitution character.
260 The idea is that many valid printable Unicode chars
261 nevertheless are not displayed correctly. Think about
262 combining charachers, double-wide hieroglyphs, obscure
263 characters in dozens of ancient scripts...
264 Many terminals, terminal emulators, xterms etc will fail
265 to handle them correctly. Choose the smallest value
266 which suits your needs.
270 767 (0x2ff) - there are no combining chars in [0..767] range
271 (the range includes Latin 1, Latin Ext. A and B),
272 code is ~700 bytes smaller for this case.
273 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
274 code is ~300 bytes smaller for this case.
275 12799 (0x31ff) - nearly all non-ideographic characters are
276 available in [0..12799] range, including
277 East Asian scripts like katakana, hiragana, hangul,
279 0 - off, any valid printable Unicode character will be printed.
281 config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
282 bool "Allow zero-width Unicode characters on output"
283 default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
284 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
286 With this option off, any Unicode char with width of 0
287 is substituted on output.
289 config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
290 bool "Allow wide Unicode characters on output"
291 default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
292 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
294 With this option off, any Unicode char with width > 1
295 is substituted on output.
297 config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
298 bool "Bidirectional character-aware line input"
299 default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
300 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
302 With this option on, right-to-left Unicode characters
303 are treated differently on input (e.g. cursor movement).
305 config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
306 bool "In bidi input, support non-ASCII neutral chars too"
307 default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
308 depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
310 In most cases it's enough to treat only ASCII non-letters
311 (i.e. punctuation, numbers and space) as characters
312 with neutral directionality.
313 With this option on, more extensive (and bigger) table
314 of neutral chars will be used.
316 config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
317 bool "Make it possible to enter sequences of chars which are not Unicode"
318 default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
319 depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
321 With this option on, on line-editing input (such as used by shells)
322 invalid UTF-8 bytes are not substituted with the selected
323 substitution character.
324 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
325 at shell prompt will list file named 0xff (single char name
326 with char value 255), not file named '?'.
328 config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
329 bool "Non-POSIX, but safer, copying to special nodes"
330 default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
332 With this option, "cp file symlink" will delete symlink
333 and create a regular file. This does not conform to POSIX,
334 but prevents a symlink attack.
335 Similarly, "cp file device" will not send file's data
336 to the device. (To do that, use "cat file >device")
338 config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
339 bool "Give more precise messages when copy fails (cp, mv etc)"
340 default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
342 Error messages with this feature enabled:
343 $ cp file /does_not_exist/file
344 cp: cannot create '/does_not_exist/file': Path does not exist
345 $ cp file /vmlinuz/file
346 cp: cannot stat '/vmlinuz/file': Path has non-directory component
347 If this feature is not enabled, they will be, respectively:
348 cp: cannot create '/does_not_exist/file': No such file or directory
349 cp: cannot stat '/vmlinuz/file': Not a directory
350 This will cost you ~60 bytes.
352 config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
353 bool "Use sendfile system call"
354 default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
355 select BUSYBOX_CONFIG_PLATFORM_LINUX
357 When enabled, busybox will use the kernel sendfile() function
358 instead of read/write loops to copy data between file descriptors
359 (for example, cp command does this a lot).
360 If sendfile() doesn't work, copying code falls back to read/write
361 loop. sendfile() was originally implemented for faster I/O
362 from files to sockets, but since Linux 2.6.33 it was extended
363 to work for many more file types.
365 config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
366 int "Copy buffer size, in kilobytes"
368 default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
370 Size of buffer used by cp, mv, install, wget etc.
371 Buffers which are 4 kb or less will be allocated on stack.
372 Bigger buffers will be allocated with mmap, with fallback to 4 kb
373 stack buffer if mmap fails.
375 config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
376 bool "Skip rootfs in mount table"
377 default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
379 Ignore rootfs entry in mount table.
381 In Linux, kernel has a special filesystem, rootfs, which is initially
382 mounted on /. It contains initramfs data, if kernel is configured
383 to have one. Usually, another file system is mounted over / early
384 in boot process, and therefore most tools which manipulate
385 mount table, such as df, will skip rootfs entry.
387 However, some systems do not mount anything on /.
388 If you need to configure busybox for one of these systems,
389 you may find it useful to turn this option off to make df show
390 initramfs statistics.
394 config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
395 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
396 default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
397 select BUSYBOX_CONFIG_PLATFORM_LINUX
399 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
400 time intervals (time, ping, traceroute etc need this).
401 Probably requires Linux 2.6+. If not selected, gettimeofday
402 will be used instead (which gives wrong results if date/time
405 config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
406 bool "Use ioctl names rather than hex values in error messages"
407 default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
409 Use ioctl names rather than hex values in error messages
410 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
411 saves about 1400 bytes.
413 config BUSYBOX_CONFIG_FEATURE_HWIB
414 bool "Support infiniband HW"
415 default BUSYBOX_DEFAULT_FEATURE_HWIB
417 Support for printing infiniband addresses in