toybox/Config.in
<<
>>
Prefs
   1mainmenu "Toybox Configuration"
   2
   3
   4source generated/Config.probed
   5source generated/Config.in
   6
   7comment ""
   8
   9menu "Toybox global settings"
  10
  11# This entry controls the multiplexer, disabled for single command builds
  12config TOYBOX
  13        bool
  14        default y
  15        help
  16          usage: toybox [--long | --help | --version | [command] [arguments...]]
  17
  18          With no arguments, shows available commands. First argument is
  19          name of a command to run, followed by any arguments to that command.
  20
  21          --long        Show path to each command
  22
  23          To install command symlinks with paths, try:
  24            for i in $(/bin/toybox --long); do ln -s /bin/toybox $i; done
  25          or all in one directory:
  26            for i in $(./toybox); do ln -s toybox $i; done; PATH=$PWD:$PATH
  27
  28          Most toybox commands also understand the following arguments:
  29
  30          --help                Show command help (only)
  31          --version     Show toybox version (only)
  32
  33          The filename "-" means stdin/stdout, and "--" stops argument parsing.
  34
  35          Numerical arguments accept a single letter suffix for
  36          kilo, mega, giga, tera, peta, and exabytes, plus an additional
  37          "d" to indicate decimal 1000's instead of 1024.
  38
  39          Durations can be decimal fractions and accept minute ("m"), hour ("h"),
  40          or day ("d") suffixes (so 0.1m = 6s).
  41
  42config TOYBOX_SUID
  43        bool "SUID support"
  44        default y
  45        help
  46          Support for the Set User ID bit, to install toybox suid root and drop
  47          permissions for commands which do not require root access. To use
  48          this change ownership of the file to the root user and set the suid
  49          bit in the file permissions:
  50
  51          chown root:root toybox; chmod +s toybox
  52
  53choice
  54        prompt "Security Blanket"
  55        default TOYBOX_LSM_NONE
  56        help
  57          Select a Linux Security Module to complicate your system
  58          until you can't find holes in it.
  59
  60config TOYBOX_LSM_NONE
  61        bool "None"
  62        help
  63          Don't try to achieve "watertight" by plugging the holes in a
  64          collander, instead use conventional unix security (and possibly
  65          Linux Containers) for a simple straightforward system.
  66          
  67config TOYBOX_SELINUX
  68        bool "SELinux support"
  69        help
  70          Include SELinux options in commands such as ls, and add
  71          SELinux-specific commands such as chcon to the Android menu.
  72
  73config TOYBOX_SMACK
  74        bool "SMACK support"
  75        help
  76          Include SMACK options in commands like ls for systems like Tizen.
  77
  78endchoice
  79
  80config TOYBOX_LIBCRYPTO
  81       bool "Use libcrypto (OpenSSL/BoringSSL)"
  82       default n
  83       help
  84         Use faster hash functions out of external -lcrypto library.
  85
  86config TOYBOX_LIBZ
  87       bool "Use libz (zlib)"
  88       default n
  89       help
  90         Use libz for gz support.
  91
  92config TOYBOX_FLOAT
  93        bool "Floating point support"
  94        default y
  95        help
  96          Include floating point support infrastructure and commands that
  97          require it.
  98
  99config TOYBOX_HELP
 100        bool "Help messages"
 101        default y
 102        help
 103          Include help text for each command.
 104
 105config TOYBOX_HELP_DASHDASH
 106        bool "--help and --version"
 107        default y
 108        depends on TOYBOX_HELP
 109        help
 110          Support --help argument in all commands, even ones with a NULL
 111          optstring. (Use TOYFLAG_NOHELP to disable.) Produces the same output
 112          as "help command". --version shows toybox version.
 113
 114config TOYBOX_I18N
 115        bool "Internationalization support"
 116        default y
 117        help
 118          Support for UTF-8 character sets, and some locale support.
 119
 120config TOYBOX_FREE
 121        bool "Free memory unnecessarily"
 122        default n
 123        help
 124          When a program exits, the operating system will clean up after it
 125          (free memory, close files, etc). To save size, toybox usually relies
 126          on this behavior. If you're running toybox under a debugger or
 127          without a real OS (ala newlib+libgloss), enable this to make toybox
 128          clean up after itself.
 129
 130config TOYBOX_NORECURSE
 131        bool "Disable recursive execution"
 132        default n
 133        help
 134          When one toybox command calls another, usually it just calls the new
 135          command's main() function rather than searching the $PATH and calling
 136          exec on another file (which is much slower).
 137
 138          This disables that optimization, so toybox will run external commands
 139          even when it has a built-in version of that command. This requires
 140          toybox symlinks to be installed in the $PATH, or re-invoking the
 141          "toybox" multiplexer command by name.
 142
 143config TOYBOX_DEBUG
 144        bool "Debugging tests"
 145        default n
 146        help
 147          Enable extra checks for debugging purposes. All of them catch
 148          things that can only go wrong at development time, not runtime.
 149
 150config TOYBOX_PEDANTIC_ARGS
 151        bool "Pedantic argument checking"
 152        default n
 153        help
 154          Check arguments for commands that have no arguments.
 155
 156config TOYBOX_UID_SYS
 157        int "First system UID"
 158        default 100
 159        help
 160          When commands like useradd/groupadd allocate system IDs, start here.
 161
 162config TOYBOX_UID_USR
 163        int "First user UID"
 164        default 500
 165        help
 166          When commands like useradd/groupadd allocate user IDs, start here.
 167
 168config TOYBOX_FORCE_NOMMU
 169        bool "Enable nommu support when the build can't detect it."
 170        default n
 171        help
 172          When using musl-libc on a nommu system, you'll need to say "y" here
 173          unless you used the patch in the mcm-buildall.sh script. You can also
 174          say "y" here to test the nommu codepaths on an mmu system.
 175
 176          A nommu system can't use fork(), it can only vfork() which suspends
 177          the parent until the child calls exec() or exits. When a program
 178          needs a second instance of itself to run specific code at the same
 179          time as the parent, it must use a more complicated approach (such as
 180          exec("/proc/self/exe") then pass data to the new child through a pipe)
 181          which is larger and slower, especially for things like toysh subshells
 182          that need to duplicate a lot of internal state in the child process
 183          fork() gives you for free.
 184
 185          Libraries like uclibc omit fork() on nommu systems, allowing
 186          compile-time probes to select which codepath to use. But musl
 187          intentionally includes a broken version of fork() that always returns
 188          -ENOSYS on nommu systems, and goes out of its way to prevent any
 189          cross-compile compatible compile-time probes for a nommu system.
 190          (It doesn't even #define __MUSL__ in features.h.) Musl does this
 191          despite the fact that a nommu system can't even run standard ELF
 192          binaries (requiring specially packaged executables) because it wants
 193          to force every program to either include all nommu code in every
 194          instance ever built, or drop nommu support altogether.
 195
 196          Building a toolchain scripts/mcm-buildall.sh patches musl to fix this.
 197
 198endmenu
 199