blob: 3c1b064b6a741eff5e9eaa90470762fd0bb13253 [file] [log] [blame]
Rob Landley5cf7c2d2006-02-21 06:44:43 +00001#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +02006comment "Library Tuning"
Rob Landley5cf7c2d2006-02-21 06:44:43 +00007
Denys Vlasenkod70e0e92010-06-08 12:15:11 +02008INSERT
9
Denys Vlasenko24860fa2016-11-24 22:30:52 +010010choice
11 prompt "Buffer allocation policy"
12 default FEATURE_BUFFERS_USE_MALLOC
13 help
Denys Vlasenko86d5bf42017-07-27 02:59:13 +020014 There are 3 ways busybox can handle buffer allocations:
Denys Vlasenko72089cf2017-07-21 09:50:55 +020015 - Use malloc. This costs code size for the call to xmalloc.
16 - Put them on stack. For some very small machines with limited stack
17 space, this can be deadly. For most folks, this works just fine.
18 - Put them in BSS. This works beautifully for computers with a real
19 MMU (and OS support), but wastes runtime RAM for uCLinux. This
Denys Vlasenko86d5bf42017-07-27 02:59:13 +020020 behavior was the only one available for versions 0.48 and earlier.
Denys Vlasenko24860fa2016-11-24 22:30:52 +010021
22config FEATURE_BUFFERS_USE_MALLOC
23 bool "Allocate with Malloc"
24
25config FEATURE_BUFFERS_GO_ON_STACK
26 bool "Allocate on the Stack"
27
28config FEATURE_BUFFERS_GO_IN_BSS
29 bool "Allocate in the .bss section"
30
31endchoice
32
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000033config PASSWORD_MINLEN
"Robert P. J. Day"087b9d62006-07-02 18:35:39 +000034 int "Minimum password length"
35 default 6
36 range 5 32
37 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020038 Minimum allowable password length.
"Robert P. J. Day"087b9d62006-07-02 18:35:39 +000039
Denys Vlasenko522041e2011-09-10 13:25:57 +020040config MD5_SMALL
Denys Vlasenko7e7e08f2009-07-06 23:24:20 +020041 int "MD5: Trade bytes for speed (0:fast, 3:slow)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010042 default 1 # all "fast or small" options default to small
Rob Landley5cf7c2d2006-02-21 06:44:43 +000043 range 0 3
44 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020045 Trade binary size versus speed for the md5sum algorithm.
46 Approximate values running uClibc and hashing
47 linux-2.4.4.tar.bz2 were:
48 value user times (sec) text size (386)
49 0 (fastest) 1.1 6144
50 1 1.4 5392
51 2 3.0 5088
52 3 (smallest) 5.1 4912
Rob Landley5cf7c2d2006-02-21 06:44:43 +000053
Denys Vlasenko30a86522013-01-15 01:12:26 +010054config SHA3_SMALL
55 int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010056 default 1 # all "fast or small" options default to small
Denys Vlasenko30a86522013-01-15 01:12:26 +010057 range 0 1
58 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020059 Trade binary size versus speed for the sha3sum algorithm.
60 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
61 64-bit x86: +270 bytes of code, 45% faster
62 32-bit x86: +450 bytes of code, 75% faster
Denys Vlasenko30a86522013-01-15 01:12:26 +010063
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000064config FEATURE_FAST_TOP
65 bool "Faster /proc scanning code (+100 bytes)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010066 default n # all "fast or small" options default to small
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000067 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020068 This option makes top and ps ~20% faster (or 20% less CPU hungry),
69 but code size is slightly bigger.
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000070
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000071config FEATURE_ETC_NETWORKS
Denys Vlasenkof5604222017-01-10 14:58:54 +010072 bool "Support /etc/networks"
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000073 default n
74 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020075 Enable support for network names in /etc/networks. This is
76 a rarely used feature which allows you to use names
77 instead of IP/mask pairs in route command.
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000078
Denis Vlasenko38f63192007-01-22 09:03:07 +000079config FEATURE_EDITING
80 bool "Command line editing"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020081 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +000082 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020083 Enable line editing (mainly for shell command line).
Denis Vlasenkoe8a07882007-06-10 15:08:44 +000084
85config FEATURE_EDITING_MAX_LEN
86 int "Maximum length of input"
87 range 128 8192
88 default 1024
89 depends on FEATURE_EDITING
90 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020091 Line editing code uses on-stack buffers for storage.
92 You may want to decrease this parameter if your target machine
93 benefits from smaller stack usage.
Denis Vlasenko38f63192007-01-22 09:03:07 +000094
Denis Vlasenko38f63192007-01-22 09:03:07 +000095config FEATURE_EDITING_VI
96 bool "vi-style line editing commands"
97 default n
98 depends on FEATURE_EDITING
99 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200100 Enable vi-style line editing. In shells, this mode can be
101 turned on and off with "set -o vi" and "set +o vi".
Denis Vlasenko38f63192007-01-22 09:03:07 +0000102
103config FEATURE_EDITING_HISTORY
104 int "History size"
Denys Vlasenko2c4de5b2011-03-31 13:16:52 +0200105 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
106 range 0 9999
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200107 default 255
Denis Vlasenko38f63192007-01-22 09:03:07 +0000108 depends on FEATURE_EDITING
109 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200110 Specify command history size (0 - disable).
Denis Vlasenko38f63192007-01-22 09:03:07 +0000111
112config FEATURE_EDITING_SAVEHISTORY
113 bool "History saving"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200114 default y
Denys Vlasenko99862cb2010-09-12 17:34:13 +0200115 depends on FEATURE_EDITING
Denis Vlasenko38f63192007-01-22 09:03:07 +0000116 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200117 Enable history saving in shells.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000118
Denys Vlasenkobede2152011-09-04 16:12:33 +0200119config FEATURE_EDITING_SAVE_ON_EXIT
120 bool "Save history on shell exit, not after every command"
121 default n
122 depends on FEATURE_EDITING_SAVEHISTORY
123 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200124 Save history on shell exit, not after every command.
Denys Vlasenkobede2152011-09-04 16:12:33 +0200125
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200126config FEATURE_REVERSE_SEARCH
127 bool "Reverse history search"
128 default y
Denys Vlasenkofe0dc342015-10-30 21:39:19 +0100129 depends on FEATURE_EDITING
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200130 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200131 Enable readline-like Ctrl-R combination for reverse history search.
132 Increases code by about 0.5k.
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200133
Denis Vlasenko38f63192007-01-22 09:03:07 +0000134config FEATURE_TAB_COMPLETION
135 bool "Tab completion"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200136 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000137 depends on FEATURE_EDITING
Denis Vlasenko38f63192007-01-22 09:03:07 +0000138
139config FEATURE_USERNAME_COMPLETION
140 bool "Username completion"
Denys Vlasenko1afa4942016-12-23 13:40:24 +0100141 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000142 depends on FEATURE_TAB_COMPLETION
Denis Vlasenko38f63192007-01-22 09:03:07 +0000143
144config FEATURE_EDITING_FANCY_PROMPT
145 bool "Fancy shell prompts"
Denys Vlasenko5d26df62010-07-16 15:31:38 +0200146 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000147 depends on FEATURE_EDITING
148 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200149 Setting this option allows for prompts to use things like \w and
150 \$ and escape codes.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000151
Denys Vlasenko020f4062009-05-17 16:44:54 +0200152config FEATURE_EDITING_ASK_TERMINAL
153 bool "Query cursor position from terminal"
154 default n
155 depends on FEATURE_EDITING
156 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200157 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
158 current cursor position. This information is used to make line
159 editing more robust in some cases.
160 If you are not sure whether your terminals respond to this code
161 correctly, or want to save on code size (about 400 bytes),
162 then do not turn this option on.
Denys Vlasenko020f4062009-05-17 16:44:54 +0200163
Denys Vlasenko12559252016-11-24 22:18:55 +0100164config LOCALE_SUPPORT
165 bool "Enable locale support (system needs locale for this to work)"
166 default n
167 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200168 Enable this if your system has locale support and you would like
169 busybox to support locale settings.
Denys Vlasenko12559252016-11-24 22:18:55 +0100170
171config UNICODE_SUPPORT
172 bool "Support Unicode"
173 default y
174 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200175 This makes various applets aware that one byte is not
176 one character on screen.
Denys Vlasenko12559252016-11-24 22:18:55 +0100177
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200178 Busybox aims to eventually work correctly with Unicode displays.
179 Any older encodings are not guaranteed to work.
180 Probably by the time when busybox will be fully Unicode-clean,
181 other encodings will be mainly of historic interest.
Denys Vlasenko12559252016-11-24 22:18:55 +0100182
183config UNICODE_USING_LOCALE
184 bool "Use libc routines for Unicode (else uses internal ones)"
185 default n
186 depends on UNICODE_SUPPORT && LOCALE_SUPPORT
187 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200188 With this option on, Unicode support is implemented using libc
189 routines. Otherwise, internal implementation is used.
190 Internal implementation is smaller.
Denys Vlasenko12559252016-11-24 22:18:55 +0100191
192config FEATURE_CHECK_UNICODE_IN_ENV
193 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
194 default n
195 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
196 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200197 With this option on, Unicode support is activated
198 only if locale-related variables have the value of the form
199 "xxxx.utf8"
Denys Vlasenko12559252016-11-24 22:18:55 +0100200
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200201 Otherwise, Unicode support will be always enabled and active.
Denys Vlasenko12559252016-11-24 22:18:55 +0100202
203config SUBST_WCHAR
204 int "Character code to substitute unprintable characters with"
205 depends on UNICODE_SUPPORT
206 default 63
207 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200208 Typical values are 63 for '?' (works with any output device),
209 30 for ASCII substitute control code,
210 65533 (0xfffd) for Unicode replacement character.
Denys Vlasenko12559252016-11-24 22:18:55 +0100211
212config LAST_SUPPORTED_WCHAR
213 int "Range of supported Unicode characters"
214 depends on UNICODE_SUPPORT
215 default 767
216 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200217 Any character with Unicode value bigger than this is assumed
218 to be non-printable on output device. Many applets replace
219 such characters with substitution character.
Denys Vlasenko12559252016-11-24 22:18:55 +0100220
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200221 The idea is that many valid printable Unicode chars
222 nevertheless are not displayed correctly. Think about
223 combining charachers, double-wide hieroglyphs, obscure
224 characters in dozens of ancient scripts...
225 Many terminals, terminal emulators, xterms etc will fail
226 to handle them correctly. Choose the smallest value
227 which suits your needs.
Denys Vlasenko12559252016-11-24 22:18:55 +0100228
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200229 Typical values are:
230 126 - ASCII only
231 767 (0x2ff) - there are no combining chars in [0..767] range
Denys Vlasenko12559252016-11-24 22:18:55 +0100232 (the range includes Latin 1, Latin Ext. A and B),
233 code is ~700 bytes smaller for this case.
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200234 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
Denys Vlasenko12559252016-11-24 22:18:55 +0100235 code is ~300 bytes smaller for this case.
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200236 12799 (0x31ff) - nearly all non-ideographic characters are
Denys Vlasenko12559252016-11-24 22:18:55 +0100237 available in [0..12799] range, including
238 East Asian scripts like katakana, hiragana, hangul,
239 bopomofo...
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200240 0 - off, any valid printable Unicode character will be printed.
Denys Vlasenko12559252016-11-24 22:18:55 +0100241
242config UNICODE_COMBINING_WCHARS
243 bool "Allow zero-width Unicode characters on output"
244 default n
245 depends on UNICODE_SUPPORT
246 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200247 With this option off, any Unicode char with width of 0
248 is substituted on output.
Denys Vlasenko12559252016-11-24 22:18:55 +0100249
250config UNICODE_WIDE_WCHARS
251 bool "Allow wide Unicode characters on output"
252 default n
253 depends on UNICODE_SUPPORT
254 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200255 With this option off, any Unicode char with width > 1
256 is substituted on output.
Denys Vlasenko12559252016-11-24 22:18:55 +0100257
258config UNICODE_BIDI_SUPPORT
259 bool "Bidirectional character-aware line input"
260 default n
261 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
262 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200263 With this option on, right-to-left Unicode characters
264 are treated differently on input (e.g. cursor movement).
Denys Vlasenko12559252016-11-24 22:18:55 +0100265
266config UNICODE_NEUTRAL_TABLE
267 bool "In bidi input, support non-ASCII neutral chars too"
268 default n
269 depends on UNICODE_BIDI_SUPPORT
270 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200271 In most cases it's enough to treat only ASCII non-letters
272 (i.e. punctuation, numbers and space) as characters
273 with neutral directionality.
274 With this option on, more extensive (and bigger) table
275 of neutral chars will be used.
Denys Vlasenko12559252016-11-24 22:18:55 +0100276
277config UNICODE_PRESERVE_BROKEN
278 bool "Make it possible to enter sequences of chars which are not Unicode"
279 default n
280 depends on UNICODE_SUPPORT
281 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200282 With this option on, on line-editing input (such as used by shells)
283 invalid UTF-8 bytes are not substituted with the selected
284 substitution character.
285 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
286 at shell prompt will list file named 0xff (single char name
287 with char value 255), not file named '?'.
Denys Vlasenko12559252016-11-24 22:18:55 +0100288
Denys Vlasenko2d7b5bf2009-07-05 12:49:29 +0200289config FEATURE_NON_POSIX_CP
290 bool "Non-POSIX, but safer, copying to special nodes"
291 default y
292 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200293 With this option, "cp file symlink" will delete symlink
294 and create a regular file. This does not conform to POSIX,
295 but prevents a symlink attack.
296 Similarly, "cp file device" will not send file's data
297 to the device. (To do that, use "cat file >device")
Denys Vlasenko2d7b5bf2009-07-05 12:49:29 +0200298
Denis Vlasenkod5fe8802008-02-13 16:52:00 +0000299config FEATURE_VERBOSE_CP_MESSAGE
300 bool "Give more precise messages when copy fails (cp, mv etc)"
301 default n
302 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200303 Error messages with this feature enabled:
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200304
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200305 $ cp file /does_not_exist/file
306 cp: cannot create '/does_not_exist/file': Path does not exist
307 $ cp file /vmlinuz/file
308 cp: cannot stat '/vmlinuz/file': Path has non-directory component
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200309
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200310 If this feature is not enabled, they will be, respectively:
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200311
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200312 cp: cannot create '/does_not_exist/file': No such file or directory
313 cp: cannot stat '/vmlinuz/file': Not a directory
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200314
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200315 This will cost you ~60 bytes.
Denis Vlasenkod5fe8802008-02-13 16:52:00 +0000316
Denys Vlasenko12559252016-11-24 22:18:55 +0100317config FEATURE_USE_SENDFILE
318 bool "Use sendfile system call"
319 default y
320 select PLATFORM_LINUX
321 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200322 When enabled, busybox will use the kernel sendfile() function
323 instead of read/write loops to copy data between file descriptors
324 (for example, cp command does this a lot).
325 If sendfile() doesn't work, copying code falls back to read/write
326 loop. sendfile() was originally implemented for faster I/O
327 from files to sockets, but since Linux 2.6.33 it was extended
328 to work for many more file types.
Denys Vlasenko12559252016-11-24 22:18:55 +0100329
Denis Vlasenko4c139222007-12-02 03:27:42 +0000330config FEATURE_COPYBUF_KB
331 int "Copy buffer size, in kilobytes"
332 range 1 1024
333 default 4
334 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200335 Size of buffer used by cp, mv, install, wget etc.
336 Buffers which are 4 kb or less will be allocated on stack.
337 Bigger buffers will be allocated with mmap, with fallback to 4 kb
338 stack buffer if mmap fails.
Denis Vlasenko4c139222007-12-02 03:27:42 +0000339
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100340config FEATURE_SKIP_ROOTFS
341 bool "Skip rootfs in mount table"
342 default y
343 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200344 Ignore rootfs entry in mount table.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100345
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200346 In Linux, kernel has a special filesystem, rootfs, which is initially
347 mounted on /. It contains initramfs data, if kernel is configured
348 to have one. Usually, another file system is mounted over / early
349 in boot process, and therefore most tools which manipulate
350 mount table, such as df, will skip rootfs entry.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100351
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200352 However, some systems do not mount anything on /.
353 If you need to configure busybox for one of these systems,
354 you may find it useful to turn this option off to make df show
355 initramfs statistics.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100356
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200357 Otherwise, choose Y.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100358
Denis Vlasenko459be352007-06-17 19:09:05 +0000359config MONOTONIC_SYSCALL
360 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
Denys Vlasenkodb700332015-10-25 20:36:03 +0100361 default y
Denys Vlasenkoe3b1a1f2011-02-26 22:24:08 +0100362 select PLATFORM_LINUX
Denis Vlasenko459be352007-06-17 19:09:05 +0000363 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200364 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
365 time intervals (time, ping, traceroute etc need this).
366 Probably requires Linux 2.6+. If not selected, gettimeofday
367 will be used instead (which gives wrong results if date/time
368 is reset).
Denis Vlasenko459be352007-06-17 19:09:05 +0000369
Denis Vlasenkofb79a2e2007-07-14 22:07:14 +0000370config IOCTL_HEX2STR_ERROR
371 bool "Use ioctl names rather than hex values in error messages"
372 default y
373 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200374 Use ioctl names rather than hex values in error messages
375 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
376 saves about 1400 bytes.
Bernhard Reutner-Fischerf3b778a2008-05-16 16:10:31 +0000377
378config FEATURE_HWIB
379 bool "Support infiniband HW"
380 default y
381 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200382 Support for printing infiniband addresses in network applets.