summaryrefslogtreecommitdiff
path: root/libbb/Config.src (plain)
blob: 172fbcc0e7c9ac0c6889cf2c56b19ce139fb633b
1#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
6menu "Busybox Library Tuning"
7
8INSERT
9
10choice
11 prompt "Buffer allocation policy"
12 default FEATURE_BUFFERS_USE_MALLOC
13 help
14 There are 3 ways BusyBox can handle buffer allocations:
15 - 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
20 behavior was the only one available for BusyBox versions 0.48 and
21 earlier.
22
23config FEATURE_BUFFERS_USE_MALLOC
24 bool "Allocate with Malloc"
25
26config FEATURE_BUFFERS_GO_ON_STACK
27 bool "Allocate on the Stack"
28
29config FEATURE_BUFFERS_GO_IN_BSS
30 bool "Allocate in the .bss section"
31
32endchoice
33
34config PASSWORD_MINLEN
35 int "Minimum password length"
36 default 6
37 range 5 32
38 help
39 Minimum allowable password length.
40
41config MD5_SMALL
42 int "MD5: Trade bytes for speed (0:fast, 3:slow)"
43 default 1 # all "fast or small" options default to small
44 range 0 3
45 help
46 Trade binary size versus speed for the md5sum algorithm.
47 Approximate values running uClibc and hashing
48 linux-2.4.4.tar.bz2 were:
49 user times (sec) text size (386)
50 0 (fastest) 1.1 6144
51 1 1.4 5392
52 2 3.0 5088
53 3 (smallest) 5.1 4912
54
55config SHA3_SMALL
56 int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
57 default 1 # all "fast or small" options default to small
58 range 0 1
59 help
60 Trade binary size versus speed for the sha3sum algorithm.
61 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
62 64-bit x86: +270 bytes of code, 45% faster
63 32-bit x86: +450 bytes of code, 75% faster
64
65config FEATURE_FAST_TOP
66 bool "Faster /proc scanning code (+100 bytes)"
67 default n # all "fast or small" options default to small
68 help
69 This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
70 but code size is slightly bigger.
71
72config FEATURE_ETC_NETWORKS
73 bool "Support for /etc/networks"
74 default n
75 help
76 Enable support for network names in /etc/networks. This is
77 a rarely used feature which allows you to use names
78 instead of IP/mask pairs in route command.
79
80config FEATURE_USE_TERMIOS
81 bool "Use termios to manipulate the screen"
82 default y
83 depends on MORE || TOP || POWERTOP
84 help
85 This option allows utilities such as 'more' and 'top' to determine
86 the size of the screen. If you leave this disabled, your utilities
87 that display things on the screen will be especially primitive and
88 will be unable to determine the current screen size, and will be
89 unable to move the cursor.
90
91config FEATURE_EDITING
92 bool "Command line editing"
93 default y
94 help
95 Enable line editing (mainly for shell command line).
96
97config FEATURE_EDITING_MAX_LEN
98 int "Maximum length of input"
99 range 128 8192
100 default 1024
101 depends on FEATURE_EDITING
102 help
103 Line editing code uses on-stack buffers for storage.
104 You may want to decrease this parameter if your target machine
105 benefits from smaller stack usage.
106
107config FEATURE_EDITING_VI
108 bool "vi-style line editing commands"
109 default n
110 depends on FEATURE_EDITING
111 help
112 Enable vi-style line editing. In shells, this mode can be
113 turned on and off with "set -o vi" and "set +o vi".
114
115config FEATURE_EDITING_HISTORY
116 int "History size"
117 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
118 range 0 9999
119 default 255
120 depends on FEATURE_EDITING
121 help
122 Specify command history size (0 - disable).
123
124config FEATURE_EDITING_SAVEHISTORY
125 bool "History saving"
126 default y
127 depends on FEATURE_EDITING
128 help
129 Enable history saving in shells.
130
131config FEATURE_EDITING_SAVE_ON_EXIT
132 bool "Save history on shell exit, not after every command"
133 default n
134 depends on FEATURE_EDITING_SAVEHISTORY
135 help
136 Save history on shell exit, not after every command.
137
138config FEATURE_REVERSE_SEARCH
139 bool "Reverse history search"
140 default y
141 depends on FEATURE_EDITING
142 help
143 Enable readline-like Ctrl-R combination for reverse history search.
144 Increases code by about 0.5k.
145
146config FEATURE_TAB_COMPLETION
147 bool "Tab completion"
148 default y
149 depends on FEATURE_EDITING
150 help
151 Enable tab completion.
152
153config FEATURE_USERNAME_COMPLETION
154 bool "Username completion"
155 default y
156 depends on FEATURE_TAB_COMPLETION
157 help
158 Enable username completion.
159
160config FEATURE_EDITING_FANCY_PROMPT
161 bool "Fancy shell prompts"
162 default y
163 depends on FEATURE_EDITING
164 help
165 Setting this option allows for prompts to use things like \w and
166 \$ and escape codes.
167
168config FEATURE_EDITING_ASK_TERMINAL
169 bool "Query cursor position from terminal"
170 default n
171 depends on FEATURE_EDITING
172 help
173 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
174 current cursor position. This information is used to make line
175 editing more robust in some cases.
176 If you are not sure whether your terminals respond to this code
177 correctly, or want to save on code size (about 400 bytes),
178 then do not turn this option on.
179
180config LOCALE_SUPPORT
181 bool "Enable locale support (system needs locale for this to work)"
182 default n
183 help
184 Enable this if your system has locale support and you would like
185 busybox to support locale settings.
186
187config UNICODE_SUPPORT
188 bool "Support Unicode"
189 default y
190 help
191 This makes various applets aware that one byte is not
192 one character on screen.
193
194 Busybox aims to eventually work correctly with Unicode displays.
195 Any older encodings are not guaranteed to work.
196 Probably by the time when busybox will be fully Unicode-clean,
197 other encodings will be mainly of historic interest.
198
199config UNICODE_USING_LOCALE
200 bool "Use libc routines for Unicode (else uses internal ones)"
201 default n
202 depends on UNICODE_SUPPORT && LOCALE_SUPPORT
203 help
204 With this option on, Unicode support is implemented using libc
205 routines. Otherwise, internal implementation is used.
206 Internal implementation is smaller.
207
208config FEATURE_CHECK_UNICODE_IN_ENV
209 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
210 default n
211 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
212 help
213 With this option on, Unicode support is activated
214 only if locale-related variables have the value of the form
215 "xxxx.utf8"
216
217 Otherwise, Unicode support will be always enabled and active.
218
219config SUBST_WCHAR
220 int "Character code to substitute unprintable characters with"
221 depends on UNICODE_SUPPORT
222 default 63
223 help
224 Typical values are 63 for '?' (works with any output device),
225 30 for ASCII substitute control code,
226 65533 (0xfffd) for Unicode replacement character.
227
228config LAST_SUPPORTED_WCHAR
229 int "Range of supported Unicode characters"
230 depends on UNICODE_SUPPORT
231 default 767
232 help
233 Any character with Unicode value bigger than this is assumed
234 to be non-printable on output device. Many applets replace
235 such characters with substitution character.
236
237 The idea is that many valid printable Unicode chars
238 nevertheless are not displayed correctly. Think about
239 combining charachers, double-wide hieroglyphs, obscure
240 characters in dozens of ancient scripts...
241 Many terminals, terminal emulators, xterms etc will fail
242 to handle them correctly. Choose the smallest value
243 which suits your needs.
244
245 Typical values are:
246 126 - ASCII only
247 767 (0x2ff) - there are no combining chars in [0..767] range
248 (the range includes Latin 1, Latin Ext. A and B),
249 code is ~700 bytes smaller for this case.
250 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
251 code is ~300 bytes smaller for this case.
252 12799 (0x31ff) - nearly all non-ideographic characters are
253 available in [0..12799] range, including
254 East Asian scripts like katakana, hiragana, hangul,
255 bopomofo...
256 0 - off, any valid printable Unicode character will be printed.
257
258config UNICODE_COMBINING_WCHARS
259 bool "Allow zero-width Unicode characters on output"
260 default n
261 depends on UNICODE_SUPPORT
262 help
263 With this option off, any Unicode char with width of 0
264 is substituted on output.
265
266config UNICODE_WIDE_WCHARS
267 bool "Allow wide Unicode characters on output"
268 default n
269 depends on UNICODE_SUPPORT
270 help
271 With this option off, any Unicode char with width > 1
272 is substituted on output.
273
274config UNICODE_BIDI_SUPPORT
275 bool "Bidirectional character-aware line input"
276 default n
277 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
278 help
279 With this option on, right-to-left Unicode characters
280 are treated differently on input (e.g. cursor movement).
281
282config UNICODE_NEUTRAL_TABLE
283 bool "In bidi input, support non-ASCII neutral chars too"
284 default n
285 depends on UNICODE_BIDI_SUPPORT
286 help
287 In most cases it's enough to treat only ASCII non-letters
288 (i.e. punctuation, numbers and space) as characters
289 with neutral directionality.
290 With this option on, more extensive (and bigger) table
291 of neutral chars will be used.
292
293config UNICODE_PRESERVE_BROKEN
294 bool "Make it possible to enter sequences of chars which are not Unicode"
295 default n
296 depends on UNICODE_SUPPORT
297 help
298 With this option on, on line-editing input (such as used by shells)
299 invalid UTF-8 bytes are not substituted with the selected
300 substitution character.
301 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
302 at shell prompt will list file named 0xff (single char name
303 with char value 255), not file named '?'.
304
305config FEATURE_NON_POSIX_CP
306 bool "Non-POSIX, but safer, copying to special nodes"
307 default y
308 help
309 With this option, "cp file symlink" will delete symlink
310 and create a regular file. This does not conform to POSIX,
311 but prevents a symlink attack.
312 Similarly, "cp file device" will not send file's data
313 to the device. (To do that, use "cat file >device")
314
315config FEATURE_VERBOSE_CP_MESSAGE
316 bool "Give more precise messages when copy fails (cp, mv etc)"
317 default n
318 help
319 Error messages with this feature enabled:
320 $ cp file /does_not_exist/file
321 cp: cannot create '/does_not_exist/file': Path does not exist
322 $ cp file /vmlinuz/file
323 cp: cannot stat '/vmlinuz/file': Path has non-directory component
324 If this feature is not enabled, they will be, respectively:
325 cp: cannot create '/does_not_exist/file': No such file or directory
326 cp: cannot stat '/vmlinuz/file': Not a directory
327 This will cost you ~60 bytes.
328
329config FEATURE_USE_SENDFILE
330 bool "Use sendfile system call"
331 default y
332 select PLATFORM_LINUX
333 help
334 When enabled, busybox will use the kernel sendfile() function
335 instead of read/write loops to copy data between file descriptors
336 (for example, cp command does this a lot).
337 If sendfile() doesn't work, copying code falls back to read/write
338 loop. sendfile() was originally implemented for faster I/O
339 from files to sockets, but since Linux 2.6.33 it was extended
340 to work for many more file types.
341
342config FEATURE_COPYBUF_KB
343 int "Copy buffer size, in kilobytes"
344 range 1 1024
345 default 4
346 help
347 Size of buffer used by cp, mv, install, wget etc.
348 Buffers which are 4 kb or less will be allocated on stack.
349 Bigger buffers will be allocated with mmap, with fallback to 4 kb
350 stack buffer if mmap fails.
351
352config FEATURE_SKIP_ROOTFS
353 bool "Skip rootfs in mount table"
354 default y
355 help
356 Ignore rootfs entry in mount table.
357
358 In Linux, kernel has a special filesystem, rootfs, which is initially
359 mounted on /. It contains initramfs data, if kernel is configured
360 to have one. Usually, another file system is mounted over / early
361 in boot process, and therefore most tools which manipulate
362 mount table, such as df, will skip rootfs entry.
363
364 However, some systems do not mount anything on /.
365 If you need to configure busybox for one of these systems,
366 you may find it useful to turn this option off to make df show
367 initramfs statistics.
368
369 Otherwise, choose Y.
370
371config MONOTONIC_SYSCALL
372 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
373 default y
374 select PLATFORM_LINUX
375 help
376 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
377 time intervals (time, ping, traceroute etc need this).
378 Probably requires Linux 2.6+. If not selected, gettimeofday
379 will be used instead (which gives wrong results if date/time
380 is reset).
381
382config IOCTL_HEX2STR_ERROR
383 bool "Use ioctl names rather than hex values in error messages"
384 default y
385 help
386 Use ioctl names rather than hex values in error messages
387 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
388 saves about 1400 bytes.
389
390config FEATURE_HWIB
391 bool "Support infiniband HW"
392 default y
393 help
394 Support for printing infiniband addresses in
395 network applets.
396
397endmenu
398