busybox/libbb/Config.src
<<
>>
Prefs
   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