ec08351b5c6b0d20a0b1481a8c78bf1db441183c
[oweals/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 for /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_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
122         help
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.
128
129 config BUSYBOX_CONFIG_FEATURE_EDITING
130         bool "Command line editing"
131         default BUSYBOX_DEFAULT_FEATURE_EDITING
132         help
133           Enable line editing (mainly for shell command line).
134
135 config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
136         int "Maximum length of input"
137         range 128 8192
138         default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
139         depends on BUSYBOX_CONFIG_FEATURE_EDITING
140         help
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.
144
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
149         help
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".
152
153 config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
154         int "History size"
155         # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
156         range 0 9999
157         default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
158         depends on BUSYBOX_CONFIG_FEATURE_EDITING
159         help
160           Specify command history size (0 - disable).
161
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
166         help
167           Enable history saving in shells.
168
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
173         help
174           Save history on shell exit, not after every command.
175
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
180         help
181           Enable readline-like Ctrl-R combination for reverse history search.
182           Increases code by about 0.5k.
183
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
188         help
189           Enable tab completion.
190
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
195         help
196           Enable username completion.
197
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
202         help
203           Setting this option allows for prompts to use things like \w and
204           \$ and escape codes.
205
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
210         help
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.
217
218 config BUSYBOX_CONFIG_LOCALE_SUPPORT
219         bool "Enable locale support (system needs locale for this to work)"
220         default BUSYBOX_DEFAULT_LOCALE_SUPPORT
221         help
222           Enable this if your system has locale support and you would like
223           busybox to support locale settings.
224
225 config BUSYBOX_CONFIG_UNICODE_SUPPORT
226         bool "Support Unicode"
227         default BUSYBOX_DEFAULT_UNICODE_SUPPORT
228         help
229           This makes various applets aware that one byte is not
230           one character on screen.
231
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.
236
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
241         help
242           With this option on, Unicode support is implemented using libc
243           routines. Otherwise, internal implementation is used.
244           Internal implementation is smaller.
245
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
250         help
251           With this option on, Unicode support is activated
252           only if locale-related variables have the value of the form
253           "xxxx.utf8"
254
255           Otherwise, Unicode support will be always enabled and active.
256
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
261         help
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.
265
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
270         help
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.
274
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.
282
283           Typical values are:
284           126 - ASCII only
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,
293                         bopomofo...
294           0 - off, any valid printable Unicode character will be printed.
295
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
300         help
301           With this option off, any Unicode char with width of 0
302           is substituted on output.
303
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
308         help
309           With this option off, any Unicode char with width > 1
310           is substituted on output.
311
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
316         help
317           With this option on, right-to-left Unicode characters
318           are treated differently on input (e.g. cursor movement).
319
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
324         help
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.
330
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
335         help
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 '?'.
342
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
346         help
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")
352
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
356         help
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.
366
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
371         help
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.
379
380 config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
381         int "Copy buffer size, in kilobytes"
382         range 1 1024
383         default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
384         help
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.
389
390 config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
391         bool "Skip rootfs in mount table"
392         default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
393         help
394           Ignore rootfs entry in mount table.
395
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.
401
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.
406
407           Otherwise, choose Y.
408
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
413         help
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
418           is reset).
419
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
423         help
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.
427
428 config BUSYBOX_CONFIG_FEATURE_HWIB
429         bool "Support infiniband HW"
430         default BUSYBOX_DEFAULT_FEATURE_HWIB
431         help
432           Support for printing infiniband addresses in
433           network applets.
434
435 endmenu