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_FAST_TOP
  65        bool "Faster /proc scanning code (+100 bytes)"
  66        default n  # all "fast or small" options default to small
  67        help
  68        This option makes top and ps ~20% faster (or 20% less CPU hungry),
  69        but code size is slightly bigger.
  70
  71config FEATURE_ETC_NETWORKS
  72        bool "Support /etc/networks"
  73        default n
  74        help
  75        Enable support for network names in /etc/networks. This is
  76        a rarely used feature which allows you to use names
  77        instead of IP/mask pairs in route command.
  78
  79config FEATURE_ETC_SERVICES
  80        bool "Consult /etc/services even for well-known ports"
  81        default n
  82        help
  83        Look up e.g. "telnet" and "http" in /etc/services file
  84        instead of assuming ports 23 and 80.
  85        This is almost never necessary (everybody uses standard ports),
  86        and it makes sense to avoid reading this file.
  87        If you disable this option, in the cases where port is explicitly
  88        specified as a service name (e.g. "telnet HOST PORTNAME"),
  89        it will still be looked up in /etc/services.
  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
 151config FEATURE_USERNAME_COMPLETION
 152        bool "Username completion"
 153        default y
 154        depends on FEATURE_TAB_COMPLETION
 155
 156config FEATURE_EDITING_FANCY_PROMPT
 157        bool "Fancy shell prompts"
 158        default y
 159        depends on FEATURE_EDITING
 160        help
 161        Setting this option allows for prompts to use things like \w and
 162        \$ and escape codes.
 163
 164config FEATURE_EDITING_WINCH
 165        bool "Enable automatic tracking of window size changes"
 166        default y
 167        depends on FEATURE_EDITING
 168
 169config FEATURE_EDITING_ASK_TERMINAL
 170        bool "Query cursor position from terminal"
 171        default n
 172        depends on FEATURE_EDITING
 173        help
 174        Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
 175        current cursor position. This information is used to make line
 176        editing more robust in some cases.
 177        If you are not sure whether your terminals respond to this code
 178        correctly, or want to save on code size (about 400 bytes),
 179        then do not turn this option on.
 180
 181config LOCALE_SUPPORT
 182        bool "Enable locale support (system needs locale for this to work)"
 183        default n
 184        help
 185        Enable this if your system has locale support and you would like
 186        busybox to support locale settings.
 187
 188config UNICODE_SUPPORT
 189        bool "Support Unicode"
 190        default y
 191        help
 192        This makes various applets aware that one byte is not
 193        one character on screen.
 194
 195        Busybox aims to eventually work correctly with Unicode displays.
 196        Any older encodings are not guaranteed to work.
 197        Probably by the time when busybox will be fully Unicode-clean,
 198        other encodings will be mainly of historic interest.
 199
 200config UNICODE_USING_LOCALE
 201        bool "Use libc routines for Unicode (else uses internal ones)"
 202        default n
 203        depends on UNICODE_SUPPORT && LOCALE_SUPPORT
 204        help
 205        With this option on, Unicode support is implemented using libc
 206        routines. Otherwise, internal implementation is used.
 207        Internal implementation is smaller.
 208
 209config FEATURE_CHECK_UNICODE_IN_ENV
 210        bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
 211        default n
 212        depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
 213        help
 214        With this option on, Unicode support is activated
 215        only if locale-related variables have the value of the form
 216        "xxxx.utf8"
 217
 218        Otherwise, Unicode support will be always enabled and active.
 219
 220config SUBST_WCHAR
 221        int "Character code to substitute unprintable characters with"
 222        depends on UNICODE_SUPPORT
 223        default 63
 224        help
 225        Typical values are 63 for '?' (works with any output device),
 226        30 for ASCII substitute control code,
 227        65533 (0xfffd) for Unicode replacement character.
 228
 229config LAST_SUPPORTED_WCHAR
 230        int "Range of supported Unicode characters"
 231        depends on UNICODE_SUPPORT
 232        default 767
 233        help
 234        Any character with Unicode value bigger than this is assumed
 235        to be non-printable on output device. Many applets replace
 236        such characters with substitution character.
 237
 238        The idea is that many valid printable Unicode chars
 239        nevertheless are not displayed correctly. Think about
 240        combining charachers, double-wide hieroglyphs, obscure
 241        characters in dozens of ancient scripts...
 242        Many terminals, terminal emulators, xterms etc will fail
 243        to handle them correctly. Choose the smallest value
 244        which suits your needs.
 245
 246        Typical values are:
 247        126 - ASCII only
 248        767 (0x2ff) - there are no combining chars in [0..767] range
 249                        (the range includes Latin 1, Latin Ext. A and B),
 250                        code is ~700 bytes smaller for this case.
 251        4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
 252                        code is ~300 bytes smaller for this case.
 253        12799 (0x31ff) - nearly all non-ideographic characters are
 254                        available in [0..12799] range, including
 255                        East Asian scripts like katakana, hiragana, hangul,
 256                        bopomofo...
 257        0 - off, any valid printable Unicode character will be printed.
 258
 259config UNICODE_COMBINING_WCHARS
 260        bool "Allow zero-width Unicode characters on output"
 261        default n
 262        depends on UNICODE_SUPPORT
 263        help
 264        With this option off, any Unicode char with width of 0
 265        is substituted on output.
 266
 267config UNICODE_WIDE_WCHARS
 268        bool "Allow wide Unicode characters on output"
 269        default n
 270        depends on UNICODE_SUPPORT
 271        help
 272        With this option off, any Unicode char with width > 1
 273        is substituted on output.
 274
 275config UNICODE_BIDI_SUPPORT
 276        bool "Bidirectional character-aware line input"
 277        default n
 278        depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
 279        help
 280        With this option on, right-to-left Unicode characters
 281        are treated differently on input (e.g. cursor movement).
 282
 283config UNICODE_NEUTRAL_TABLE
 284        bool "In bidi input, support non-ASCII neutral chars too"
 285        default n
 286        depends on UNICODE_BIDI_SUPPORT
 287        help
 288        In most cases it's enough to treat only ASCII non-letters
 289        (i.e. punctuation, numbers and space) as characters
 290        with neutral directionality.
 291        With this option on, more extensive (and bigger) table
 292        of neutral chars will be used.
 293
 294config UNICODE_PRESERVE_BROKEN
 295        bool "Make it possible to enter sequences of chars which are not Unicode"
 296        default n
 297        depends on UNICODE_SUPPORT
 298        help
 299        With this option on, on line-editing input (such as used by shells)
 300        invalid UTF-8 bytes are not substituted with the selected
 301        substitution character.
 302        For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
 303        at shell prompt will list file named 0xff (single char name
 304        with char value 255), not file named '?'.
 305
 306config FEATURE_NON_POSIX_CP
 307        bool "Non-POSIX, but safer, copying to special nodes"
 308        default y
 309        help
 310        With this option, "cp file symlink" will delete symlink
 311        and create a regular file. This does not conform to POSIX,
 312        but prevents a symlink attack.
 313        Similarly, "cp file device" will not send file's data
 314        to the device. (To do that, use "cat file >device")
 315
 316config FEATURE_VERBOSE_CP_MESSAGE
 317        bool "Give more precise messages when copy fails (cp, mv etc)"
 318        default n
 319        help
 320        Error messages with this feature enabled:
 321
 322        $ cp file /does_not_exist/file
 323        cp: cannot create '/does_not_exist/file': Path does not exist
 324        $ cp file /vmlinuz/file
 325        cp: cannot stat '/vmlinuz/file': Path has non-directory component
 326
 327        If this feature is not enabled, they will be, respectively:
 328
 329        cp: cannot create '/does_not_exist/file': No such file or directory
 330        cp: cannot stat '/vmlinuz/file': Not a directory
 331
 332        This will cost you ~60 bytes.
 333
 334config FEATURE_USE_SENDFILE
 335        bool "Use sendfile system call"
 336        default y
 337        select PLATFORM_LINUX
 338        help
 339        When enabled, busybox will use the kernel sendfile() function
 340        instead of read/write loops to copy data between file descriptors
 341        (for example, cp command does this a lot).
 342        If sendfile() doesn't work, copying code falls back to read/write
 343        loop. sendfile() was originally implemented for faster I/O
 344        from files to sockets, but since Linux 2.6.33 it was extended
 345        to work for many more file types.
 346
 347config FEATURE_COPYBUF_KB
 348        int "Copy buffer size, in kilobytes"
 349        range 1 1024
 350        default 4
 351        help
 352        Size of buffer used by cp, mv, install, wget etc.
 353        Buffers which are 4 kb or less will be allocated on stack.
 354        Bigger buffers will be allocated with mmap, with fallback to 4 kb
 355        stack buffer if mmap fails.
 356
 357config FEATURE_SKIP_ROOTFS
 358        bool "Skip rootfs in mount table"
 359        default y
 360        help
 361        Ignore rootfs entry in mount table.
 362
 363        In Linux, kernel has a special filesystem, rootfs, which is initially
 364        mounted on /. It contains initramfs data, if kernel is configured
 365        to have one. Usually, another file system is mounted over / early
 366        in boot process, and therefore most tools which manipulate
 367        mount table, such as df, will skip rootfs entry.
 368
 369        However, some systems do not mount anything on /.
 370        If you need to configure busybox for one of these systems,
 371        you may find it useful to turn this option off to make df show
 372        initramfs statistics.
 373
 374        Otherwise, choose Y.
 375
 376config MONOTONIC_SYSCALL
 377        bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
 378        default y
 379        select PLATFORM_LINUX
 380        help
 381        Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
 382        time intervals (time, ping, traceroute etc need this).
 383        Probably requires Linux 2.6+. If not selected, gettimeofday
 384        will be used instead (which gives wrong results if date/time
 385        is reset).
 386
 387config IOCTL_HEX2STR_ERROR
 388        bool "Use ioctl names rather than hex values in error messages"
 389        default y
 390        help
 391        Use ioctl names rather than hex values in error messages
 392        (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
 393        saves about 1400 bytes.
 394
 395config FEATURE_HWIB
 396        bool "Support infiniband HW"
 397        default y
 398        help
 399        Support for printing infiniband addresses in network applets.
 400