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