Rebase from upstream commit : 3bb9dcf44627ffdd313fe92c563ae454b6ff8aa6
[librecmc/librecmc.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 docs/Kconfig-language.txt.
5 #
6
7 comment "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
23         "Data" starts on the next page boundary, but is not padded
24         to a full page at the end. "Bss" starts wherever "data" ends.
25         At runtime, "data" pages are mapped RW and they are file-backed
26         (this includes a small portion of "bss" which may live in the last
27         partial page of "data").
28         Pages which are fully in "bss" are mapped to anonymous memory.
29
30         "Bss" end is usually not page-aligned. There is an unused space
31         in the last page. Linker marks its start with the "_end" symbol.
32
33         This option will attempt to use that space for bb_common_bufsiz1[]
34         array. If it fits after _end, it will be used, and COMMON_BUFSIZE
35         will be enlarged from its guaranteed minimum size of 1 kbyte.
36         This may require recompilation a second time, since value of _end
37         is known only after final link.
38
39         If you are getting a build error like this:
40                 appletlib.c:(.text.main+0xd): undefined reference to '_end'
41         disable this option.
42 config BUSYBOX_CONFIG_FLOAT_DURATION
43         bool "Enable fractional duration arguments"
44         default BUSYBOX_DEFAULT_FLOAT_DURATION
45         help
46         Allow sleep N.NNN, top -d N.NNN etc.
47 config BUSYBOX_CONFIG_FEATURE_RTMINMAX
48         bool "Support RTMIN[+n] and RTMAX[-n] signal names"
49         default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
50         help
51         Support RTMIN[+n] and RTMAX[-n] signal names
52         in kill, killall etc. This costs ~250 bytes.
53
54 config BUSYBOX_CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
55         bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
56         default BUSYBOX_DEFAULT_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
57         depends on BUSYBOX_CONFIG_FEATURE_RTMINMAX
58         help
59         Some C libraries reserve a few real-time signals for internal
60         use, and adjust the values of SIGRTMIN/SIGRTMAX seen by
61         applications accordingly. Saying yes here means that a signal
62         name RTMIN+n will be interpreted according to the libc definition
63         of SIGRTMIN, and not the raw definition provided by the kernel.
64         This behavior matches "kill -l RTMIN+n" from bash.
65
66 choice
67         prompt "Buffer allocation policy"
68         default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
69         help
70         There are 3 ways busybox can handle buffer allocations:
71         - Use malloc. This costs code size for the call to xmalloc.
72         - Put them on stack. For some very small machines with limited stack
73         space, this can be deadly. For most folks, this works just fine.
74         - Put them in BSS. This works beautifully for computers with a real
75         MMU (and OS support), but wastes runtime RAM for uCLinux. This
76         behavior was the only one available for versions 0.48 and earlier.
77
78 config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
79         bool "Allocate with Malloc"
80
81 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
82         bool "Allocate on the Stack"
83
84 config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
85         bool "Allocate in the .bss section"
86
87 endchoice
88
89 config BUSYBOX_CONFIG_PASSWORD_MINLEN
90         int "Minimum password length"
91         default BUSYBOX_DEFAULT_PASSWORD_MINLEN
92         range 5 32
93         help
94         Minimum allowable password length.
95
96 config BUSYBOX_CONFIG_MD5_SMALL
97         int "MD5: Trade bytes for speed (0:fast, 3:slow)"
98         default BUSYBOX_DEFAULT_MD5_SMALL  # all "fast or small" options default to small
99         range 0 3
100         help
101         Trade binary size versus speed for the md5sum algorithm.
102         Approximate values running uClibc and hashing
103         linux-2.4.4.tar.bz2 were:
104         value               user times (sec)  text size (386)
105         0 (fastest)         1.1                6144
106         1                   1.4                5392
107         2                   3.0                5088
108         3 (smallest)        5.1                4912
109
110 config BUSYBOX_CONFIG_SHA3_SMALL
111         int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
112         default BUSYBOX_DEFAULT_SHA3_SMALL  # all "fast or small" options default to small
113         range 0 1
114         help
115         Trade binary size versus speed for the sha3sum algorithm.
116         SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
117         64-bit x86: +270 bytes of code, 45% faster
118         32-bit x86: +450 bytes of code, 75% faster
119
120 config BUSYBOX_CONFIG_FEATURE_FAST_TOP
121         bool "Faster /proc scanning code (+100 bytes)"
122         default BUSYBOX_DEFAULT_FEATURE_FAST_TOP  # all "fast or small" options default to small
123         help
124         This option makes top and ps ~20% faster (or 20% less CPU hungry),
125         but code size is slightly bigger.
126
127 config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
128         bool "Support /etc/networks"
129         default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
130         help
131         Enable support for network names in /etc/networks. This is
132         a rarely used feature which allows you to use names
133         instead of IP/mask pairs in route command.
134
135 config BUSYBOX_CONFIG_FEATURE_ETC_SERVICES
136         bool "Consult /etc/services even for well-known ports"
137         default BUSYBOX_DEFAULT_FEATURE_ETC_SERVICES
138         help
139         Look up e.g. "telnet" and "http" in /etc/services file
140         instead of assuming ports 23 and 80.
141         This is almost never necessary (everybody uses standard ports),
142         and it makes sense to avoid reading this file.
143         If you disable this option, in the cases where port is explicitly
144         specified as a service name (e.g. "telnet HOST PORTNAME"),
145         it will still be looked up in /etc/services.
146
147 config BUSYBOX_CONFIG_FEATURE_EDITING
148         bool "Command line editing"
149         default BUSYBOX_DEFAULT_FEATURE_EDITING
150         help
151         Enable line editing (mainly for shell command line).
152
153 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
154         int "Maximum length of input"
155         range 128 8192
156         default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
157         depends on BUSYBOX_CONFIG_FEATURE_EDITING
158         help
159         Line editing code uses on-stack buffers for storage.
160         You may want to decrease this parameter if your target machine
161         benefits from smaller stack usage.
162
163 config BUSYBOX_CONFIG_FEATURE_EDITING_VI
164         bool "vi-style line editing commands"
165         default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
166         depends on BUSYBOX_CONFIG_FEATURE_EDITING
167         help
168         Enable vi-style line editing. In shells, this mode can be
169         turned on and off with "set -o vi" and "set +o vi".
170
171 config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
172         int "History size"
173         # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
174         range 0 9999
175         default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
176         depends on BUSYBOX_CONFIG_FEATURE_EDITING
177         help
178         Specify command history size (0 - disable).
179
180 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
181         bool "History saving"
182         default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
183         depends on BUSYBOX_CONFIG_FEATURE_EDITING
184         help
185         Enable history saving in shells.
186
187 config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
188         bool "Save history on shell exit, not after every command"
189         default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
190         depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
191         help
192         Save history on shell exit, not after every command.
193
194 config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
195         bool "Reverse history search"
196         default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
197         depends on BUSYBOX_CONFIG_FEATURE_EDITING
198         help
199         Enable readline-like Ctrl-R combination for reverse history search.
200         Increases code by about 0.5k.
201
202 config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
203         bool "Tab completion"
204         default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
205         depends on BUSYBOX_CONFIG_FEATURE_EDITING
206
207 config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
208         bool "Username completion"
209         default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
210         depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
211
212 config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
213         bool "Fancy shell prompts"
214         default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
215         depends on BUSYBOX_CONFIG_FEATURE_EDITING
216         help
217         Setting this option allows for prompts to use things like \w and
218         \$ and escape codes.
219
220 config BUSYBOX_CONFIG_FEATURE_EDITING_WINCH
221         bool "Enable automatic tracking of window size changes"
222         default BUSYBOX_DEFAULT_FEATURE_EDITING_WINCH
223         depends on BUSYBOX_CONFIG_FEATURE_EDITING
224
225 config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
226         bool "Query cursor position from terminal"
227         default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
228         depends on BUSYBOX_CONFIG_FEATURE_EDITING
229         help
230         Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
231         current cursor position. This information is used to make line
232         editing more robust in some cases.
233         If you are not sure whether your terminals respond to this code
234         correctly, or want to save on code size (about 400 bytes),
235         then do not turn this option on.
236
237 config BUSYBOX_CONFIG_LOCALE_SUPPORT
238         bool "Enable locale support (system needs locale for this to work)"
239         default BUSYBOX_DEFAULT_LOCALE_SUPPORT
240         help
241         Enable this if your system has locale support and you would like
242         busybox to support locale settings.
243
244 config BUSYBOX_CONFIG_UNICODE_SUPPORT
245         bool "Support Unicode"
246         default BUSYBOX_DEFAULT_UNICODE_SUPPORT
247         help
248         This makes various applets aware that one byte is not
249         one character on screen.
250
251         Busybox aims to eventually work correctly with Unicode displays.
252         Any older encodings are not guaranteed to work.
253         Probably by the time when busybox will be fully Unicode-clean,
254         other encodings will be mainly of historic interest.
255
256 config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
257         bool "Use libc routines for Unicode (else uses internal ones)"
258         default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
259         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
260         help
261         With this option on, Unicode support is implemented using libc
262         routines. Otherwise, internal implementation is used.
263         Internal implementation is smaller.
264
265 config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
266         bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
267         default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
268         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
269         help
270         With this option on, Unicode support is activated
271         only if locale-related variables have the value of the form
272         "xxxx.utf8"
273
274         Otherwise, Unicode support will be always enabled and active.
275
276 config BUSYBOX_CONFIG_SUBST_WCHAR
277         int "Character code to substitute unprintable characters with"
278         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
279         default BUSYBOX_DEFAULT_SUBST_WCHAR
280         help
281         Typical values are 63 for '?' (works with any output device),
282         30 for ASCII substitute control code,
283         65533 (0xfffd) for Unicode replacement character.
284
285 config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
286         int "Range of supported Unicode characters"
287         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
288         default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
289         help
290         Any character with Unicode value bigger than this is assumed
291         to be non-printable on output device. Many applets replace
292         such characters with substitution character.
293
294         The idea is that many valid printable Unicode chars
295         nevertheless are not displayed correctly. Think about
296         combining charachers, double-wide hieroglyphs, obscure
297         characters in dozens of ancient scripts...
298         Many terminals, terminal emulators, xterms etc will fail
299         to handle them correctly. Choose the smallest value
300         which suits your needs.
301
302         Typical values are:
303         126 - ASCII only
304         767 (0x2ff) - there are no combining chars in [0..767] range
305                         (the range includes Latin 1, Latin Ext. A and B),
306                         code is ~700 bytes smaller for this case.
307         4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
308                         code is ~300 bytes smaller for this case.
309         12799 (0x31ff) - nearly all non-ideographic characters are
310                         available in [0..12799] range, including
311                         East Asian scripts like katakana, hiragana, hangul,
312                         bopomofo...
313         0 - off, any valid printable Unicode character will be printed.
314
315 config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
316         bool "Allow zero-width Unicode characters on output"
317         default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
318         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
319         help
320         With this option off, any Unicode char with width of 0
321         is substituted on output.
322
323 config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
324         bool "Allow wide Unicode characters on output"
325         default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
326         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
327         help
328         With this option off, any Unicode char with width > 1
329         is substituted on output.
330
331 config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
332         bool "Bidirectional character-aware line input"
333         default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
334         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
335         help
336         With this option on, right-to-left Unicode characters
337         are treated differently on input (e.g. cursor movement).
338
339 config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
340         bool "In bidi input, support non-ASCII neutral chars too"
341         default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
342         depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
343         help
344         In most cases it's enough to treat only ASCII non-letters
345         (i.e. punctuation, numbers and space) as characters
346         with neutral directionality.
347         With this option on, more extensive (and bigger) table
348         of neutral chars will be used.
349
350 config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
351         bool "Make it possible to enter sequences of chars which are not Unicode"
352         default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
353         depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
354         help
355         With this option on, on line-editing input (such as used by shells)
356         invalid UTF-8 bytes are not substituted with the selected
357         substitution character.
358         For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
359         at shell prompt will list file named 0xff (single char name
360         with char value 255), not file named '?'.
361
362 config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
363         bool "Non-POSIX, but safer, copying to special nodes"
364         default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
365         help
366         With this option, "cp file symlink" will delete symlink
367         and create a regular file. This does not conform to POSIX,
368         but prevents a symlink attack.
369         Similarly, "cp file device" will not send file's data
370         to the device. (To do that, use "cat file >device")
371
372 config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
373         bool "Give more precise messages when copy fails (cp, mv etc)"
374         default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
375         help
376         Error messages with this feature enabled:
377
378         $ cp file /does_not_exist/file
379         cp: cannot create '/does_not_exist/file': Path does not exist
380         $ cp file /vmlinuz/file
381         cp: cannot stat '/vmlinuz/file': Path has non-directory component
382
383         If this feature is not enabled, they will be, respectively:
384
385         cp: cannot create '/does_not_exist/file': No such file or directory
386         cp: cannot stat '/vmlinuz/file': Not a directory
387
388         This will cost you ~60 bytes.
389
390 config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
391         bool "Use sendfile system call"
392         default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
393         select BUSYBOX_CONFIG_PLATFORM_LINUX
394         help
395         When enabled, busybox will use the kernel sendfile() function
396         instead of read/write loops to copy data between file descriptors
397         (for example, cp command does this a lot).
398         If sendfile() doesn't work, copying code falls back to read/write
399         loop. sendfile() was originally implemented for faster I/O
400         from files to sockets, but since Linux 2.6.33 it was extended
401         to work for many more file types.
402
403 config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
404         int "Copy buffer size, in kilobytes"
405         range 1 1024
406         default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
407         help
408         Size of buffer used by cp, mv, install, wget etc.
409         Buffers which are 4 kb or less will be allocated on stack.
410         Bigger buffers will be allocated with mmap, with fallback to 4 kb
411         stack buffer if mmap fails.
412
413 config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
414         bool "Skip rootfs in mount table"
415         default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
416         help
417         Ignore rootfs entry in mount table.
418
419         In Linux, kernel has a special filesystem, rootfs, which is initially
420         mounted on /. It contains initramfs data, if kernel is configured
421         to have one. Usually, another file system is mounted over / early
422         in boot process, and therefore most tools which manipulate
423         mount table, such as df, will skip rootfs entry.
424
425         However, some systems do not mount anything on /.
426         If you need to configure busybox for one of these systems,
427         you may find it useful to turn this option off to make df show
428         initramfs statistics.
429
430         Otherwise, choose Y.
431
432 config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
433         bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
434         default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
435         select BUSYBOX_CONFIG_PLATFORM_LINUX
436         help
437         Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
438         time intervals (time, ping, traceroute etc need this).
439         Probably requires Linux 2.6+. If not selected, gettimeofday
440         will be used instead (which gives wrong results if date/time
441         is reset).
442
443 config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
444         bool "Use ioctl names rather than hex values in error messages"
445         default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
446         help
447         Use ioctl names rather than hex values in error messages
448         (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
449         saves about 1400 bytes.
450
451 config BUSYBOX_CONFIG_FEATURE_HWIB
452         bool "Support infiniband HW"
453         default BUSYBOX_DEFAULT_FEATURE_HWIB
454         help
455         Support for printing infiniband addresses in network applets.