1687ed5c78ad8f9e94a35f0ed88abf0b15efc4d6
[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 /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