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, "toybox" shows available COMMAND names. Add --long
  19          to include suggested install path for each command, see
  20          https://landley.net/toybox/faq.html#install for details.
  21
  22          First argument is name of a COMMAND to run, followed by any ARGUMENTS
  23          to that command. Most toybox commands also understand:
  24
  25          --help                Show command help (only)
  26          --version     Show toybox version (only)
  27
  28          The filename "-" means stdin/stdout, and "--" stops argument parsing.
  29
  30          Numerical arguments accept a single letter suffix for
  31          kilo, mega, giga, tera, peta, and exabytes, plus an additional
  32          "d" to indicate decimal 1000's instead of 1024.
  33
  34          Durations can be decimal fractions and accept minute ("m"), hour ("h"),
  35          or day ("d") suffixes (so 0.1m = 6s).
  36
  37config TOYBOX_SUID
  38        bool "SUID support"
  39        default y
  40        help
  41          Support for the Set User ID bit, to install toybox suid root and drop
  42          permissions for commands which do not require root access. To use
  43          this change ownership of the file to the root user and set the suid
  44          bit in the file permissions:
  45
  46          chown root:root toybox; chmod +s toybox
  47
  48choice
  49        prompt "Security Blanket"
  50        default TOYBOX_LSM_NONE
  51        help
  52          Select a Linux Security Module to complicate your system
  53          until you can't find holes in it.
  54
  55config TOYBOX_LSM_NONE
  56        bool "None"
  57        help
  58          Don't try to achieve "watertight" by plugging the holes in a
  59          collander, instead use conventional unix security (and possibly
  60          Linux Containers) for a simple straightforward system.
  61          
  62config TOYBOX_SELINUX
  63        bool "SELinux support"
  64        help
  65          Include SELinux options in commands such as ls, and add
  66          SELinux-specific commands such as chcon to the Android menu.
  67
  68config TOYBOX_SMACK
  69        bool "SMACK support"
  70        help
  71          Include SMACK options in commands like ls for systems like Tizen.
  72
  73endchoice
  74
  75config TOYBOX_LIBCRYPTO
  76       bool "Use libcrypto (OpenSSL/BoringSSL)"
  77       default n
  78       help
  79         Use faster hash functions out of external -lcrypto library.
  80
  81config TOYBOX_LIBZ
  82       bool "Use libz (zlib)"
  83       default n
  84       help
  85         Use libz for gz support.
  86
  87config TOYBOX_FLOAT
  88        bool "Floating point support"
  89        default y
  90        help
  91          Include floating point support infrastructure and commands that
  92          require it.
  93
  94config TOYBOX_HELP
  95        bool "Help messages"
  96        default y
  97        help
  98          Include help text for each command.
  99
 100config TOYBOX_HELP_DASHDASH
 101        bool "--help and --version"
 102        default y
 103        depends on TOYBOX_HELP
 104        help
 105          Support --help argument in all commands, even ones with a NULL
 106          optstring. (Use TOYFLAG_NOHELP to disable.) Produces the same output
 107          as "help command". --version shows toybox version.
 108
 109config TOYBOX_ZHELP
 110        bool "compress help text"
 111        default y
 112        depends on TOYBOX_HELP
 113        help
 114          Compress help with gzip -9, deflating when displayed. This makes the
 115          binary smaller but can increase runtime memory usage.
 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_UID_SYS
 148        int "First system UID"
 149        default 100
 150        help
 151          When commands like useradd/groupadd allocate system IDs, start here.
 152
 153config TOYBOX_UID_USR
 154        int "First user UID"
 155        default 500
 156        help
 157          When commands like useradd/groupadd allocate user IDs, start here.
 158
 159config TOYBOX_FORCE_NOMMU
 160        bool "Enable nommu support when the build can't detect it."
 161        default n
 162        help
 163          When using musl-libc on a nommu system, you'll need to say "y" here
 164          unless you used the patch in the mcm-buildall.sh script. You can also
 165          say "y" here to test the nommu codepaths on an mmu system.
 166
 167          A nommu system can't use fork(), it can only vfork() which suspends
 168          the parent until the child calls exec() or exits. When a program
 169          needs a second instance of itself to run specific code at the same
 170          time as the parent, it must use a more complicated approach (such as
 171          exec("/proc/self/exe") then pass data to the new child through a pipe)
 172          which is larger and slower, especially for things like toysh subshells
 173          that need to duplicate a lot of internal state in the child process
 174          fork() gives you for free.
 175
 176          Libraries like uclibc omit fork() on nommu systems, allowing
 177          compile-time probes to select which codepath to use. But musl
 178          intentionally includes a broken version of fork() that always returns
 179          -ENOSYS on nommu systems, and goes out of its way to prevent any
 180          cross-compile compatible compile-time probes for a nommu system.
 181          (It doesn't even #define __MUSL__ in features.h.) Musl does this
 182          despite the fact that a nommu system can't even run standard ELF
 183          binaries (requiring specially packaged executables) because it wants
 184          to force every program to either include all nommu code in every
 185          instance ever built, or drop nommu support altogether.
 186
 187          Building a scripts/mcm-buildall.sh toolchain patches musl to fix this.
 188
 189endmenu
 190