You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
6.0 KiB
188 lines
6.0 KiB
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
|