OpenWrt – Rev 3

Subversion Repositories:
Rev:
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

menu "Busybox Library Tuning"

config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
        bool "Use the end of BSS page"
        default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
        help
          Attempt to reclaim a small unused part of BSS.

          Executables have the following parts:
          = read-only executable code and constants, also known as "text"
          = read-write data
          = non-initialized (zeroed on demand) data, also known as "bss"

          At link time, "text" is padded to a full page. At runtime, all "text"
          pages are mapped RO and executable.
          "Data" starts on the next page boundary, but is not padded
          to a full page at the end. "Bss" starts wherever "data" ends.
          At runtime, "data" pages are mapped RW and they are file-backed
          (this includes a small portion of "bss" which may live in the last
          partial page of "data").
          Pages which are fully in "bss" are mapped to anonymous memory.

          "Bss" end is usually not page-aligned. There is an unused space
          in the last page. Linker marks its start with the "_end" symbol.

          This option will attempt to use that space for bb_common_bufsiz1[]
          array. If it fits after _end, it will be used, and COMMON_BUFSIZE
          will be enlarged from its guaranteed minimum size of 1 kbyte.
          This may require recompilation a second time, since value of _end
          is known only after final link.

          If you are getting a build error like this:
                appletlib.c:(.text.main+0xd): undefined reference to '_end'
          disable this option.
config BUSYBOX_CONFIG_FEATURE_RTMINMAX
        bool "Support RTMIN[+n] and RTMAX[-n] signal names"
        default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
        help
          Support RTMIN[+n] and RTMAX[-n] signal names
          in kill, killall etc. This costs ~250 bytes.

choice
        prompt "Buffer allocation policy"
        default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
        help
          There are 3 ways BusyBox can handle buffer allocations:
          - Use malloc. This costs code size for the call to xmalloc.
          - Put them on stack. For some very small machines with limited stack
            space, this can be deadly. For most folks, this works just fine.
          - Put them in BSS. This works beautifully for computers with a real
            MMU (and OS support), but wastes runtime RAM for uCLinux. This
            behavior was the only one available for BusyBox versions 0.48 and
            earlier.

config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
        bool "Allocate with Malloc"

config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
        bool "Allocate on the Stack"

config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
        bool "Allocate in the .bss section"

endchoice

config BUSYBOX_CONFIG_PASSWORD_MINLEN
        int "Minimum password length"
        default BUSYBOX_DEFAULT_PASSWORD_MINLEN
        range 5 32
        help
          Minimum allowable password length.

config BUSYBOX_CONFIG_MD5_SMALL
        int "MD5: Trade bytes for speed (0:fast, 3:slow)"
        default BUSYBOX_DEFAULT_MD5_SMALL  # all "fast or small" options default to small
        range 0 3
        help
          Trade binary size versus speed for the md5sum algorithm.
          Approximate values running uClibc and hashing
          linux-2.4.4.tar.bz2 were:
                            user times (sec)  text size (386)
          0 (fastest)         1.1                6144
          1                   1.4                5392
          2                   3.0                5088
          3 (smallest)        5.1                4912

config BUSYBOX_CONFIG_SHA3_SMALL
        int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
        default BUSYBOX_DEFAULT_SHA3_SMALL  # all "fast or small" options default to small
        range 0 1
        help
          Trade binary size versus speed for the sha3sum algorithm.
          SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
          64-bit x86: +270 bytes of code, 45% faster
          32-bit x86: +450 bytes of code, 75% faster

config BUSYBOX_CONFIG_FEATURE_FAST_TOP
        bool "Faster /proc scanning code (+100 bytes)"
        default BUSYBOX_DEFAULT_FEATURE_FAST_TOP  # all "fast or small" options default to small
        help
          This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
          but code size is slightly bigger.

config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
        bool "Support /etc/networks"
        default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
        help
          Enable support for network names in /etc/networks. This is
          a rarely used feature which allows you to use names
          instead of IP/mask pairs in route command.

config BUSYBOX_CONFIG_FEATURE_EDITING
        bool "Command line editing"
        default BUSYBOX_DEFAULT_FEATURE_EDITING
        help
          Enable line editing (mainly for shell command line).

config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
        int "Maximum length of input"
        range 128 8192
        default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Line editing code uses on-stack buffers for storage.
          You may want to decrease this parameter if your target machine
          benefits from smaller stack usage.

config BUSYBOX_CONFIG_FEATURE_EDITING_VI
        bool "vi-style line editing commands"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Enable vi-style line editing. In shells, this mode can be
          turned on and off with "set -o vi" and "set +o vi".

config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
        int "History size"
        # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
        range 0 9999
        default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Specify command history size (0 - disable).

config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
        bool "History saving"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Enable history saving in shells.

config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
        bool "Save history on shell exit, not after every command"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
        depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
        help
          Save history on shell exit, not after every command.

config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
        bool "Reverse history search"
        default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Enable readline-like Ctrl-R combination for reverse history search.
          Increases code by about 0.5k.

config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
        bool "Tab completion"
        default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
        depends on BUSYBOX_CONFIG_FEATURE_EDITING

config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
        bool "Username completion"
        default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
        depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION

config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
        bool "Fancy shell prompts"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Setting this option allows for prompts to use things like \w and
          \$ and escape codes.

config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
        bool "Query cursor position from terminal"
        default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
        depends on BUSYBOX_CONFIG_FEATURE_EDITING
        help
          Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
          current cursor position. This information is used to make line
          editing more robust in some cases.
          If you are not sure whether your terminals respond to this code
          correctly, or want to save on code size (about 400 bytes),
          then do not turn this option on.

config BUSYBOX_CONFIG_LOCALE_SUPPORT
        bool "Enable locale support (system needs locale for this to work)"
        default BUSYBOX_DEFAULT_LOCALE_SUPPORT
        help
          Enable this if your system has locale support and you would like
          busybox to support locale settings.

config BUSYBOX_CONFIG_UNICODE_SUPPORT
        bool "Support Unicode"
        default BUSYBOX_DEFAULT_UNICODE_SUPPORT
        help
          This makes various applets aware that one byte is not
          one character on screen.

          Busybox aims to eventually work correctly with Unicode displays.
          Any older encodings are not guaranteed to work.
          Probably by the time when busybox will be fully Unicode-clean,
          other encodings will be mainly of historic interest.

config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        bool "Use libc routines for Unicode (else uses internal ones)"
        default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
        help
          With this option on, Unicode support is implemented using libc
          routines. Otherwise, internal implementation is used.
          Internal implementation is smaller.

config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
        bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
        default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        help
          With this option on, Unicode support is activated
          only if locale-related variables have the value of the form
          "xxxx.utf8"

          Otherwise, Unicode support will be always enabled and active.

config BUSYBOX_CONFIG_SUBST_WCHAR
        int "Character code to substitute unprintable characters with"
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        default BUSYBOX_DEFAULT_SUBST_WCHAR
        help
          Typical values are 63 for '?' (works with any output device),
          30 for ASCII substitute control code,
          65533 (0xfffd) for Unicode replacement character.

config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
        int "Range of supported Unicode characters"
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
        help
          Any character with Unicode value bigger than this is assumed
          to be non-printable on output device. Many applets replace
          such characters with substitution character.

          The idea is that many valid printable Unicode chars
          nevertheless are not displayed correctly. Think about
          combining charachers, double-wide hieroglyphs, obscure
          characters in dozens of ancient scripts...
          Many terminals, terminal emulators, xterms etc will fail
          to handle them correctly. Choose the smallest value
          which suits your needs.

          Typical values are:
          126 - ASCII only
          767 (0x2ff) - there are no combining chars in [0..767] range
                        (the range includes Latin 1, Latin Ext. A and B),
                        code is ~700 bytes smaller for this case.
          4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
                        code is ~300 bytes smaller for this case.
          12799 (0x31ff) - nearly all non-ideographic characters are
                        available in [0..12799] range, including
                        East Asian scripts like katakana, hiragana, hangul,
                        bopomofo...
          0 - off, any valid printable Unicode character will be printed.

config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
        bool "Allow zero-width Unicode characters on output"
        default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
          With this option off, any Unicode char with width of 0
          is substituted on output.

config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
        bool "Allow wide Unicode characters on output"
        default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
          With this option off, any Unicode char with width > 1
          is substituted on output.

config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
        bool "Bidirectional character-aware line input"
        default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
        help
          With this option on, right-to-left Unicode characters
          are treated differently on input (e.g. cursor movement).

config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
        bool "In bidi input, support non-ASCII neutral chars too"
        default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
        depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
        help
          In most cases it's enough to treat only ASCII non-letters
          (i.e. punctuation, numbers and space) as characters
          with neutral directionality.
          With this option on, more extensive (and bigger) table
          of neutral chars will be used.

config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
        bool "Make it possible to enter sequences of chars which are not Unicode"
        default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
        depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
        help
          With this option on, on line-editing input (such as used by shells)
          invalid UTF-8 bytes are not substituted with the selected
          substitution character.
          For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
          at shell prompt will list file named 0xff (single char name
          with char value 255), not file named '?'.

config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
        bool "Non-POSIX, but safer, copying to special nodes"
        default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
        help
          With this option, "cp file symlink" will delete symlink
          and create a regular file. This does not conform to POSIX,
          but prevents a symlink attack.
          Similarly, "cp file device" will not send file's data
          to the device. (To do that, use "cat file >device")

config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
        bool "Give more precise messages when copy fails (cp, mv etc)"
        default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
        help
          Error messages with this feature enabled:
            $ cp file /does_not_exist/file
            cp: cannot create '/does_not_exist/file': Path does not exist
            $ cp file /vmlinuz/file
            cp: cannot stat '/vmlinuz/file': Path has non-directory component
          If this feature is not enabled, they will be, respectively:
            cp: cannot create '/does_not_exist/file': No such file or directory
            cp: cannot stat '/vmlinuz/file': Not a directory
          This will cost you ~60 bytes.

config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
        bool "Use sendfile system call"
        default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
          When enabled, busybox will use the kernel sendfile() function
          instead of read/write loops to copy data between file descriptors
          (for example, cp command does this a lot).
          If sendfile() doesn't work, copying code falls back to read/write
          loop. sendfile() was originally implemented for faster I/O
          from files to sockets, but since Linux 2.6.33 it was extended
          to work for many more file types.

config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
        int "Copy buffer size, in kilobytes"
        range 1 1024
        default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
        help
          Size of buffer used by cp, mv, install, wget etc.
          Buffers which are 4 kb or less will be allocated on stack.
          Bigger buffers will be allocated with mmap, with fallback to 4 kb
          stack buffer if mmap fails.

config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
        bool "Skip rootfs in mount table"
        default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
        help
          Ignore rootfs entry in mount table.

          In Linux, kernel has a special filesystem, rootfs, which is initially
          mounted on /. It contains initramfs data, if kernel is configured
          to have one. Usually, another file system is mounted over / early
          in boot process, and therefore most tools which manipulate
          mount table, such as df, will skip rootfs entry.

          However, some systems do not mount anything on /.
          If you need to configure busybox for one of these systems,
          you may find it useful to turn this option off to make df show
          initramfs statistics.

          Otherwise, choose Y.

config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
        bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
        default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
        select BUSYBOX_CONFIG_PLATFORM_LINUX
        help
          Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
          time intervals (time, ping, traceroute etc need this).
          Probably requires Linux 2.6+. If not selected, gettimeofday
          will be used instead (which gives wrong results if date/time
          is reset).

config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
        bool "Use ioctl names rather than hex values in error messages"
        default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
        help
          Use ioctl names rather than hex values in error messages
          (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
          saves about 1400 bytes.

config BUSYBOX_CONFIG_FEATURE_HWIB
        bool "Support infiniband HW"
        default BUSYBOX_DEFAULT_FEATURE_HWIB
        help
          Support for printing infiniband addresses in
          network applets.

endmenu