| mainmenu "Toybox Configuration" |
| |
| |
| source generated/Config.probed |
| source generated/Config.in |
| |
| comment "" |
| |
| menu "Toybox global settings" |
| |
| # This entry controls the multiplexer, disabled for single command builds |
| config TOYBOX |
| bool |
| default y |
| help |
| usage: toybox [--long | --help | --version | [COMMAND] [ARGUMENTS...]] |
| |
| With no arguments, "toybox" shows available COMMAND names. Add --long |
| to include suggested install path for each command, see |
| https://landley.net/toybox/faq.html#install for details. |
| |
| First argument is name of a COMMAND to run, followed by any ARGUMENTS |
| to that command. Most toybox commands also understand: |
| |
| --help Show command help (only) |
| --version Show toybox version (only) |
| |
| The filename "-" means stdin/stdout, and "--" stops argument parsing. |
| |
| Numerical arguments accept a single letter suffix for |
| kilo, mega, giga, tera, peta, and exabytes, plus an additional |
| "d" to indicate decimal 1000's instead of 1024. |
| |
| Durations can be decimal fractions and accept minute ("m"), hour ("h"), |
| or day ("d") suffixes (so 0.1m = 6s). |
| |
| config TOYBOX_SUID |
| bool "SUID support" |
| default y |
| help |
| Support for the Set User ID bit, to install toybox suid root and drop |
| permissions for commands which do not require root access. To use |
| this change ownership of the file to the root user and set the suid |
| bit in the file permissions: |
| |
| chown root:root toybox; chmod +s toybox |
| |
| choice |
| prompt "Security Blanket" |
| default TOYBOX_LSM_NONE |
| help |
| Select a Linux Security Module to complicate your system |
| until you can't find holes in it. |
| |
| config TOYBOX_LSM_NONE |
| bool "None" |
| help |
| Don't try to achieve "watertight" by plugging the holes in a |
| collander, instead use conventional unix security (and possibly |
| Linux Containers) for a simple straightforward system. |
| |
| config TOYBOX_SELINUX |
| bool "SELinux support" |
| help |
| Include SELinux options in commands such as ls, and add |
| SELinux-specific commands such as chcon to the Android menu. |
| |
| config TOYBOX_SMACK |
| bool "SMACK support" |
| help |
| Include SMACK options in commands like ls for systems like Tizen. |
| |
| endchoice |
| |
| config TOYBOX_LIBCRYPTO |
| bool "Use libcrypto (OpenSSL/BoringSSL)" |
| default n |
| help |
| Use faster hash functions out of external -lcrypto library. |
| |
| config TOYBOX_LIBZ |
| bool "Use libz (zlib)" |
| default n |
| help |
| Use libz for gz support. |
| |
| config TOYBOX_FLOAT |
| bool "Floating point support" |
| default y |
| help |
| Include floating point support infrastructure and commands that |
| require it. |
| |
| config TOYBOX_HELP |
| bool "Help messages" |
| default y |
| help |
| Include help text for each command. |
| |
| config TOYBOX_HELP_DASHDASH |
| bool "--help and --version" |
| default y |
| depends on TOYBOX_HELP |
| help |
| Support --help argument in all commands, even ones with a NULL |
| optstring. (Use TOYFLAG_NOHELP to disable.) Produces the same output |
| as "help command". --version shows toybox version. |
| |
| config TOYBOX_FREE |
| bool "Free memory unnecessarily" |
| default n |
| help |
| When a program exits, the operating system will clean up after it |
| (free memory, close files, etc). To save size, toybox usually relies |
| on this behavior. If you're running toybox under a debugger or |
| without a real OS (ala newlib+libgloss), enable this to make toybox |
| clean up after itself. |
| |
| config TOYBOX_NORECURSE |
| bool "Disable recursive execution" |
| default n |
| help |
| When one toybox command calls another, usually it just calls the new |
| command's main() function rather than searching the $PATH and calling |
| exec on another file (which is much slower). |
| |
| This disables that optimization, so toybox will run external commands |
| even when it has a built-in version of that command. This requires |
| toybox symlinks to be installed in the $PATH, or re-invoking the |
| "toybox" multiplexer command by name. |
| |
| config TOYBOX_DEBUG |
| bool "Debugging tests" |
| default n |
| help |
| Enable extra checks for debugging purposes. All of them catch |
| things that can only go wrong at development time, not runtime. |
| |
| config TOYBOX_PEDANTIC_ARGS |
| bool "Pedantic argument checking" |
| default n |
| help |
| Check arguments for commands that have no arguments. |
| |
| config TOYBOX_UID_SYS |
| int "First system UID" |
| default 100 |
| help |
| When commands like useradd/groupadd allocate system IDs, start here. |
| |
| config TOYBOX_UID_USR |
| int "First user UID" |
| default 500 |
| help |
| When commands like useradd/groupadd allocate user IDs, start here. |
| |
| config TOYBOX_FORCE_NOMMU |
| bool "Enable nommu support when the build can't detect it." |
| default n |
| help |
| When using musl-libc on a nommu system, you'll need to say "y" here |
| unless you used the patch in the mcm-buildall.sh script. You can also |
| say "y" here to test the nommu codepaths on an mmu system. |
| |
| A nommu system can't use fork(), it can only vfork() which suspends |
| the parent until the child calls exec() or exits. When a program |
| needs a second instance of itself to run specific code at the same |
| time as the parent, it must use a more complicated approach (such as |
| exec("/proc/self/exe") then pass data to the new child through a pipe) |
| which is larger and slower, especially for things like toysh subshells |
| that need to duplicate a lot of internal state in the child process |
| fork() gives you for free. |
| |
| Libraries like uclibc omit fork() on nommu systems, allowing |
| compile-time probes to select which codepath to use. But musl |
| intentionally includes a broken version of fork() that always returns |
| -ENOSYS on nommu systems, and goes out of its way to prevent any |
| cross-compile compatible compile-time probes for a nommu system. |
| (It doesn't even #define __MUSL__ in features.h.) Musl does this |
| despite the fact that a nommu system can't even run standard ELF |
| binaries (requiring specially packaged executables) because it wants |
| to force every program to either include all nommu code in every |
| instance ever built, or drop nommu support altogether. |
| |
| Building a scripts/mcm-buildall.sh toolchain patches musl to fix this. |
| |
| endmenu |