Config.in 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449
  1. # DO NOT EDIT. This file is generated from Config.src
  2. #
  3. # For a description of the syntax of this configuration file,
  4. # see docs/Kconfig-language.txt.
  5. #
  6. comment "Library Tuning"
  7. config BUSYBOX_FEATURE_USE_BSS_TAIL
  8. bool "Use the end of BSS page"
  9. default n
  10. help
  11. Attempt to reclaim a small unused part of BSS.
  12. Executables have the following parts:
  13. = read-only executable code and constants, also known as "text"
  14. = read-write data
  15. = non-initialized (zeroed on demand) data, also known as "bss"
  16. At link time, "text" is padded to a full page. At runtime, all "text"
  17. pages are mapped RO and executable.
  18. "Data" starts on the next page boundary, but is not padded
  19. to a full page at the end. "Bss" starts wherever "data" ends.
  20. At runtime, "data" pages are mapped RW and they are file-backed
  21. (this includes a small portion of "bss" which may live in the last
  22. partial page of "data").
  23. Pages which are fully in "bss" are mapped to anonymous memory.
  24. "Bss" end is usually not page-aligned. There is an unused space
  25. in the last page. Linker marks its start with the "_end" symbol.
  26. This option will attempt to use that space for bb_common_bufsiz1[]
  27. array. If it fits after _end, it will be used, and COMMON_BUFSIZE
  28. will be enlarged from its guaranteed minimum size of 1 kbyte.
  29. This may require recompilation a second time, since value of _end
  30. is known only after final link.
  31. If you are getting a build error like this:
  32. appletlib.c:(.text.main+0xd): undefined reference to '_end'
  33. disable this option.
  34. config BUSYBOX_FLOAT_DURATION
  35. bool "Enable fractional duration arguments"
  36. default y
  37. help
  38. Allow sleep N.NNN, top -d N.NNN etc.
  39. config BUSYBOX_FEATURE_RTMINMAX
  40. bool "Support RTMIN[+n] and RTMAX[-n] signal names"
  41. default y
  42. help
  43. Support RTMIN[+n] and RTMAX[-n] signal names
  44. in kill, killall etc. This costs ~250 bytes.
  45. config BUSYBOX_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
  46. bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
  47. default y
  48. depends on BUSYBOX_FEATURE_RTMINMAX
  49. help
  50. Some C libraries reserve a few real-time signals for internal
  51. use, and adjust the values of SIGRTMIN/SIGRTMAX seen by
  52. applications accordingly. Saying yes here means that a signal
  53. name RTMIN+n will be interpreted according to the libc definition
  54. of SIGRTMIN, and not the raw definition provided by the kernel.
  55. This behavior matches "kill -l RTMIN+n" from bash.
  56. choice
  57. prompt "Buffer allocation policy"
  58. default BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
  59. help
  60. There are 3 ways busybox can handle buffer allocations:
  61. - Use malloc. This costs code size for the call to xmalloc.
  62. - Put them on stack. For some very small machines with limited stack
  63. space, this can be deadly. For most folks, this works just fine.
  64. - Put them in BSS. This works beautifully for computers with a real
  65. MMU (and OS support), but wastes runtime RAM for uCLinux. This
  66. behavior was the only one available for versions 0.48 and earlier.
  67. config BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
  68. bool "Allocate with Malloc"
  69. config BUSYBOX_FEATURE_BUFFERS_GO_ON_STACK
  70. bool "Allocate on the Stack"
  71. config BUSYBOX_FEATURE_BUFFERS_GO_IN_BSS
  72. bool "Allocate in the .bss section"
  73. endchoice
  74. config BUSYBOX_PASSWORD_MINLEN
  75. int "Minimum password length"
  76. default 6
  77. range 5 32
  78. help
  79. Minimum allowable password length.
  80. config BUSYBOX_MD5_SMALL
  81. int "MD5: Trade bytes for speed (0:fast, 3:slow)"
  82. default 1 # all "fast or small" options default to small
  83. range 0 3
  84. help
  85. Trade binary size versus speed for the md5 algorithm.
  86. Approximate values running uClibc and hashing
  87. linux-2.4.4.tar.bz2 were:
  88. value user times (sec) text size (386)
  89. 0 (fastest) 1.1 6144
  90. 1 1.4 5392
  91. 2 3.0 5088
  92. 3 (smallest) 5.1 4912
  93. config BUSYBOX_SHA1_SMALL
  94. int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
  95. default 3 # all "fast or small" options default to small
  96. range 0 3
  97. help
  98. Trade binary size versus speed for the sha1 algorithm.
  99. With FEATURE_COPYBUF_KB=64:
  100. throughput MB/s size of sha1_process_block64
  101. value 486 x86-64 486 x86-64
  102. 0 440 485 3481 3502
  103. 1 265 265 641 696
  104. 2,3 220 210 342 364
  105. config BUSYBOX_SHA1_HWACCEL
  106. bool "SHA1: Use hardware accelerated instructions if possible"
  107. default y
  108. help
  109. On x86, this adds ~590 bytes of code. Throughput
  110. is about twice as fast as fully-unrolled generic code.
  111. config BUSYBOX_SHA256_HWACCEL
  112. bool "SHA256: Use hardware accelerated instructions if possible"
  113. default y
  114. help
  115. On x86, this adds ~1k bytes of code.
  116. config BUSYBOX_SHA3_SMALL
  117. int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
  118. default 1 # all "fast or small" options default to small
  119. range 0 1
  120. help
  121. Trade binary size versus speed for the sha3 algorithm.
  122. SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
  123. 64-bit x86: +270 bytes of code, 45% faster
  124. 32-bit x86: +450 bytes of code, 75% faster
  125. config BUSYBOX_FEATURE_NON_POSIX_CP
  126. bool "Non-POSIX, but safer, copying to special nodes"
  127. default y
  128. help
  129. With this option, "cp file symlink" will delete symlink
  130. and create a regular file. This does not conform to POSIX,
  131. but prevents a symlink attack.
  132. Similarly, "cp file device" will not send file's data
  133. to the device. (To do that, use "cat file >device")
  134. config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
  135. bool "Give more precise messages when copy fails (cp, mv etc)"
  136. default n
  137. help
  138. Error messages with this feature enabled:
  139. $ cp file /does_not_exist/file
  140. cp: cannot create '/does_not_exist/file': Path does not exist
  141. $ cp file /vmlinuz/file
  142. cp: cannot stat '/vmlinuz/file': Path has non-directory component
  143. If this feature is not enabled, they will be, respectively:
  144. cp: cannot create '/does_not_exist/file': No such file or directory
  145. cp: cannot stat '/vmlinuz/file': Not a directory
  146. This will cost you ~60 bytes.
  147. config BUSYBOX_FEATURE_USE_SENDFILE
  148. bool "Use sendfile system call"
  149. default y
  150. help
  151. When enabled, busybox will use the kernel sendfile() function
  152. instead of read/write loops to copy data between file descriptors
  153. (for example, cp command does this a lot).
  154. If sendfile() doesn't work, copying code falls back to read/write
  155. loop. sendfile() was originally implemented for faster I/O
  156. from files to sockets, but since Linux 2.6.33 it was extended
  157. to work for many more file types.
  158. config BUSYBOX_FEATURE_COPYBUF_KB
  159. int "Copy buffer size, in kilobytes"
  160. range 1 1024
  161. default 4
  162. help
  163. Size of buffer used by cp, mv, install, wget etc.
  164. Buffers which are 4 kb or less will be allocated on stack.
  165. Bigger buffers will be allocated with mmap, with fallback to 4 kb
  166. stack buffer if mmap fails.
  167. config BUSYBOX_MONOTONIC_SYSCALL
  168. bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
  169. default y
  170. help
  171. Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
  172. time intervals (time, ping, traceroute etc need this).
  173. Probably requires Linux 2.6+. If not selected, gettimeofday
  174. will be used instead (which gives wrong results if date/time
  175. is reset).
  176. config BUSYBOX_IOCTL_HEX2STR_ERROR
  177. bool "Use ioctl names rather than hex values in error messages"
  178. default y
  179. help
  180. Use ioctl names rather than hex values in error messages
  181. (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
  182. saves about 1400 bytes.
  183. config BUSYBOX_FEATURE_EDITING
  184. bool "Command line editing"
  185. default y
  186. help
  187. Enable line editing (mainly for shell command line).
  188. config BUSYBOX_FEATURE_EDITING_MAX_LEN
  189. int "Maximum length of input"
  190. range 128 8192
  191. default 1024
  192. depends on BUSYBOX_FEATURE_EDITING
  193. help
  194. Line editing code uses on-stack buffers for storage.
  195. You may want to decrease this parameter if your target machine
  196. benefits from smaller stack usage.
  197. config BUSYBOX_FEATURE_EDITING_VI
  198. bool "vi-style line editing commands"
  199. default n
  200. depends on BUSYBOX_FEATURE_EDITING
  201. help
  202. Enable vi-style line editing. In shells, this mode can be
  203. turned on and off with "set -o vi" and "set +o vi".
  204. config BUSYBOX_FEATURE_EDITING_HISTORY
  205. int "History size"
  206. # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
  207. range 0 9999
  208. default 255
  209. depends on BUSYBOX_FEATURE_EDITING
  210. help
  211. Specify command history size (0 - disable).
  212. config BUSYBOX_FEATURE_EDITING_SAVEHISTORY
  213. bool "History saving"
  214. default y
  215. depends on BUSYBOX_FEATURE_EDITING
  216. help
  217. Enable history saving in shells.
  218. config BUSYBOX_FEATURE_EDITING_SAVE_ON_EXIT
  219. bool "Save history on shell exit, not after every command"
  220. default n
  221. depends on BUSYBOX_FEATURE_EDITING_SAVEHISTORY
  222. help
  223. Save history on shell exit, not after every command.
  224. config BUSYBOX_FEATURE_REVERSE_SEARCH
  225. bool "Reverse history search"
  226. default y
  227. depends on BUSYBOX_FEATURE_EDITING
  228. help
  229. Enable readline-like Ctrl-R combination for reverse history search.
  230. Increases code by about 0.5k.
  231. config BUSYBOX_FEATURE_TAB_COMPLETION
  232. bool "Tab completion"
  233. default y
  234. depends on BUSYBOX_FEATURE_EDITING
  235. config BUSYBOX_FEATURE_USERNAME_COMPLETION
  236. bool "Username completion"
  237. default y
  238. depends on BUSYBOX_FEATURE_TAB_COMPLETION
  239. config BUSYBOX_FEATURE_EDITING_FANCY_PROMPT
  240. bool "Fancy shell prompts"
  241. default y
  242. depends on BUSYBOX_FEATURE_EDITING
  243. help
  244. Setting this option allows for prompts to use things like \w and
  245. \$ and escape codes.
  246. config BUSYBOX_FEATURE_EDITING_WINCH
  247. bool "Enable automatic tracking of window size changes"
  248. default y
  249. depends on BUSYBOX_FEATURE_EDITING
  250. config BUSYBOX_FEATURE_EDITING_ASK_TERMINAL
  251. bool "Query cursor position from terminal"
  252. default n
  253. depends on BUSYBOX_FEATURE_EDITING
  254. help
  255. Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
  256. current cursor position. This information is used to make line
  257. editing more robust in some cases.
  258. If you are not sure whether your terminals respond to this code
  259. correctly, or want to save on code size (about 400 bytes),
  260. then do not turn this option on.
  261. config BUSYBOX_LOCALE_SUPPORT
  262. bool "Enable locale support (system needs locale for this to work)"
  263. default n
  264. help
  265. Enable this if your system has locale support and you would like
  266. busybox to support locale settings.
  267. config BUSYBOX_UNICODE_SUPPORT
  268. bool "Support Unicode"
  269. default y
  270. help
  271. This makes various applets aware that one byte is not
  272. one character on screen.
  273. Busybox aims to eventually work correctly with Unicode displays.
  274. Any older encodings are not guaranteed to work.
  275. Probably by the time when busybox will be fully Unicode-clean,
  276. other encodings will be mainly of historic interest.
  277. config BUSYBOX_UNICODE_USING_LOCALE
  278. bool "Use libc routines for Unicode (else uses internal ones)"
  279. default n
  280. depends on BUSYBOX_UNICODE_SUPPORT && BUSYBOX_LOCALE_SUPPORT
  281. help
  282. With this option on, Unicode support is implemented using libc
  283. routines. Otherwise, internal implementation is used.
  284. Internal implementation is smaller.
  285. config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
  286. bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
  287. default n
  288. depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
  289. help
  290. With this option on, Unicode support is activated
  291. only if locale-related variables have the value of the form
  292. "xxxx.utf8"
  293. Otherwise, Unicode support will be always enabled and active.
  294. config BUSYBOX_SUBST_WCHAR
  295. int "Character code to substitute unprintable characters with"
  296. depends on BUSYBOX_UNICODE_SUPPORT
  297. default 63
  298. help
  299. Typical values are 63 for '?' (works with any output device),
  300. 30 for ASCII substitute control code,
  301. 65533 (0xfffd) for Unicode replacement character.
  302. config BUSYBOX_LAST_SUPPORTED_WCHAR
  303. int "Range of supported Unicode characters"
  304. depends on BUSYBOX_UNICODE_SUPPORT
  305. default 767
  306. help
  307. Any character with Unicode value bigger than this is assumed
  308. to be non-printable on output device. Many applets replace
  309. such characters with substitution character.
  310. The idea is that many valid printable Unicode chars
  311. nevertheless are not displayed correctly. Think about
  312. combining charachers, double-wide hieroglyphs, obscure
  313. characters in dozens of ancient scripts...
  314. Many terminals, terminal emulators, xterms etc will fail
  315. to handle them correctly. Choose the smallest value
  316. which suits your needs.
  317. Typical values are:
  318. 126 - ASCII only
  319. 767 (0x2ff) - there are no combining chars in [0..767] range
  320. (the range includes Latin 1, Latin Ext. A and B),
  321. code is ~700 bytes smaller for this case.
  322. 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
  323. code is ~300 bytes smaller for this case.
  324. 12799 (0x31ff) - nearly all non-ideographic characters are
  325. available in [0..12799] range, including
  326. East Asian scripts like katakana, hiragana, hangul,
  327. bopomofo...
  328. 0 - off, any valid printable Unicode character will be printed.
  329. config BUSYBOX_UNICODE_COMBINING_WCHARS
  330. bool "Allow zero-width Unicode characters on output"
  331. default n
  332. depends on BUSYBOX_UNICODE_SUPPORT
  333. help
  334. With this option off, any Unicode char with width of 0
  335. is substituted on output.
  336. config BUSYBOX_UNICODE_WIDE_WCHARS
  337. bool "Allow wide Unicode characters on output"
  338. default n
  339. depends on BUSYBOX_UNICODE_SUPPORT
  340. help
  341. With this option off, any Unicode char with width > 1
  342. is substituted on output.
  343. config BUSYBOX_UNICODE_BIDI_SUPPORT
  344. bool "Bidirectional character-aware line input"
  345. default n
  346. depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
  347. help
  348. With this option on, right-to-left Unicode characters
  349. are treated differently on input (e.g. cursor movement).
  350. config BUSYBOX_UNICODE_NEUTRAL_TABLE
  351. bool "In bidi input, support non-ASCII neutral chars too"
  352. default n
  353. depends on BUSYBOX_UNICODE_BIDI_SUPPORT
  354. help
  355. In most cases it's enough to treat only ASCII non-letters
  356. (i.e. punctuation, numbers and space) as characters
  357. with neutral directionality.
  358. With this option on, more extensive (and bigger) table
  359. of neutral chars will be used.
  360. config BUSYBOX_UNICODE_PRESERVE_BROKEN
  361. bool "Make it possible to enter sequences of chars which are not Unicode"
  362. default n
  363. depends on BUSYBOX_UNICODE_SUPPORT
  364. help
  365. With this option on, on line-editing input (such as used by shells)
  366. invalid UTF-8 bytes are not substituted with the selected
  367. substitution character.
  368. For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
  369. at shell prompt will list file named 0xff (single char name
  370. with char value 255), not file named '?'.
  371. choice
  372. prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
  373. default BUSYBOX_TRY_LOOP_CONFIGURE
  374. help
  375. LOOP_CONFIGURE is added to Linux 5.8
  376. https://lwn.net/Articles/820408/
  377. This allows userspace to completely setup a loop device with a single
  378. ioctl, removing the in-between state where the device can be partially
  379. configured - eg the loop device has a backing file associated with it,
  380. but is reading from the wrong offset.
  381. config BUSYBOX_LOOP_CONFIGURE
  382. bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
  383. config BUSYBOX_NO_LOOP_CONFIGURE
  384. bool "use LOOP_SET_FD + LOOP_SET_STATUS"
  385. config BUSYBOX_TRY_LOOP_CONFIGURE
  386. bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
  387. endchoice