Config.in 5.8 KB

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