busybox: update to 1.27.2
[openwrt/openwrt.git] / package / utils / busybox / config / libbb / Config.in
1 # DO NOT EDIT. This file is generated from Config.src
2 #
3 # For a description of the syntax of this configuration file,
4 # see scripts/kbuild/config-language.txt.
5 #
6
7 menu "Busybox Library Tuning"
8
9 config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
10 bool "Use the end of BSS page"
11 default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
12 help
13 Attempt to reclaim a small unused part of BSS.
14
15 Executables have the following parts:
16 = read-only executable code and constants, also known as "text"
17 = read-write data
18 = non-initialized (zeroed on demand) data, also known as "bss"
19
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.
28
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.
31
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.
37
38 If you are getting a build error like this:
39 appletlib.c:(.text.main+0xd): undefined reference to '_end'
40 disable this option.
41 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
42 bool "Support RTMIN[+n] and RTMAX[-n] signal names"
43 default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
44 help
45 Support RTMIN[+n] and RTMAX[-n] signal names
46 in kill, killall etc. This costs ~250 bytes.
47
48 choice
49 prompt "Buffer allocation policy"
50 default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
51 help
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
59 earlier.
60
61 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
62 bool "Allocate with Malloc"
63
64 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
65 bool "Allocate on the Stack"
66
67 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
68 bool "Allocate in the .bss section"
69
70 endchoice
71
72 config BUSYBOX_CONFIG_PASSWORD_MINLEN
73 int "Minimum password length"
74 default BUSYBOX_DEFAULT_PASSWORD_MINLEN
75 range 5 32
76 help
77 Minimum allowable password length.
78
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
82 range 0 3
83 help
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)
88 0 (fastest) 1.1 6144
89 1 1.4 5392
90 2 3.0 5088
91 3 (smallest) 5.1 4912
92
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
96 range 0 1
97 help
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
102
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
106 help
107 This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
108 but code size is slightly bigger.
109
110 config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
111 bool "Support /etc/networks"
112 default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
113 help
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.
117
118 config BUSYBOX_CONFIG_FEATURE_EDITING
119 bool "Command line editing"
120 default BUSYBOX_DEFAULT_FEATURE_EDITING
121 help
122 Enable line editing (mainly for shell command line).
123
124 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
125 int "Maximum length of input"
126 range 128 8192
127 default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
128 depends on BUSYBOX_CONFIG_FEATURE_EDITING
129 help
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.
133
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
138 help
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".
141
142 config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
143 int "History size"
144 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
145 range 0 9999
146 default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
147 depends on BUSYBOX_CONFIG_FEATURE_EDITING
148 help
149 Specify command history size (0 - disable).
150
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
155 help
156 Enable history saving in shells.
157
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
162 help
163 Save history on shell exit, not after every command.
164
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
169 help
170 Enable readline-like Ctrl-R combination for reverse history search.
171 Increases code by about 0.5k.
172
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
177
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
182
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
187 help
188 Setting this option allows for prompts to use things like \w and
189 \$ and escape codes.
190
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
195 help
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.
202
203 config BUSYBOX_CONFIG_LOCALE_SUPPORT
204 bool "Enable locale support (system needs locale for this to work)"
205 default BUSYBOX_DEFAULT_LOCALE_SUPPORT
206 help
207 Enable this if your system has locale support and you would like
208 busybox to support locale settings.
209
210 config BUSYBOX_CONFIG_UNICODE_SUPPORT
211 bool "Support Unicode"
212 default BUSYBOX_DEFAULT_UNICODE_SUPPORT
213 help
214 This makes various applets aware that one byte is not
215 one character on screen.
216
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.
221
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
226 help
227 With this option on, Unicode support is implemented using libc
228 routines. Otherwise, internal implementation is used.
229 Internal implementation is smaller.
230
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
235 help
236 With this option on, Unicode support is activated
237 only if locale-related variables have the value of the form
238 "xxxx.utf8"
239
240 Otherwise, Unicode support will be always enabled and active.
241
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
246 help
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.
250
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
255 help
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.
259
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.
267
268 Typical values are:
269 126 - ASCII only
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,
278 bopomofo...
279 0 - off, any valid printable Unicode character will be printed.
280
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
285 help
286 With this option off, any Unicode char with width of 0
287 is substituted on output.
288
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
293 help
294 With this option off, any Unicode char with width > 1
295 is substituted on output.
296
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
301 help
302 With this option on, right-to-left Unicode characters
303 are treated differently on input (e.g. cursor movement).
304
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
309 help
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.
315
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
320 help
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 '?'.
327
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
331 help
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")
337
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
341 help
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.
351
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
356 help
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.
364
365 config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
366 int "Copy buffer size, in kilobytes"
367 range 1 1024
368 default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
369 help
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.
374
375 config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
376 bool "Skip rootfs in mount table"
377 default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
378 help
379 Ignore rootfs entry in mount table.
380
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.
386
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.
391
392 Otherwise, choose Y.
393
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
398 help
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
403 is reset).
404
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
408 help
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.
412
413 config BUSYBOX_CONFIG_FEATURE_HWIB
414 bool "Support infiniband HW"
415 default BUSYBOX_DEFAULT_FEATURE_HWIB
416 help
417 Support for printing infiniband addresses in
418 network applets.
419
420 endmenu