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