Config.in 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  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 scripts/kbuild/config-language.txt.
  5. #
  6. menu "Busybox Library Tuning"
  7. config BUSYBOX_CONFIG_FEATURE_USE_BSS_TAIL
  8. bool "Use the end of BSS page"
  9. default BUSYBOX_DEFAULT_FEATURE_USE_BSS_TAIL
  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_CONFIG_FEATURE_RTMINMAX
  35. bool "Support RTMIN[+n] and RTMAX[-n] signal names"
  36. default BUSYBOX_DEFAULT_FEATURE_RTMINMAX
  37. help
  38. Support RTMIN[+n] and RTMAX[-n] signal names
  39. in kill, killall etc. This costs ~250 bytes.
  40. choice
  41. prompt "Buffer allocation policy"
  42. default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
  43. help
  44. There are 3 ways BusyBox can handle buffer allocations:
  45. - Use malloc. This costs code size for the call to xmalloc.
  46. - Put them on stack. For some very small machines with limited stack
  47. space, this can be deadly. For most folks, this works just fine.
  48. - Put them in BSS. This works beautifully for computers with a real
  49. MMU (and OS support), but wastes runtime RAM for uCLinux. This
  50. behavior was the only one available for BusyBox versions 0.48 and
  51. earlier.
  52. config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC
  53. bool "Allocate with Malloc"
  54. config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
  55. bool "Allocate on the Stack"
  56. config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS
  57. bool "Allocate in the .bss section"
  58. endchoice
  59. config BUSYBOX_CONFIG_PASSWORD_MINLEN
  60. int "Minimum password length"
  61. default BUSYBOX_DEFAULT_PASSWORD_MINLEN
  62. range 5 32
  63. help
  64. Minimum allowable password length.
  65. config BUSYBOX_CONFIG_MD5_SMALL
  66. int "MD5: Trade bytes for speed (0:fast, 3:slow)"
  67. default BUSYBOX_DEFAULT_MD5_SMALL # all "fast or small" options default to small
  68. range 0 3
  69. help
  70. Trade binary size versus speed for the md5sum algorithm.
  71. Approximate values running uClibc and hashing
  72. linux-2.4.4.tar.bz2 were:
  73. user times (sec) text size (386)
  74. 0 (fastest) 1.1 6144
  75. 1 1.4 5392
  76. 2 3.0 5088
  77. 3 (smallest) 5.1 4912
  78. config BUSYBOX_CONFIG_SHA3_SMALL
  79. int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
  80. default BUSYBOX_DEFAULT_SHA3_SMALL # all "fast or small" options default to small
  81. range 0 1
  82. help
  83. Trade binary size versus speed for the sha3sum algorithm.
  84. SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
  85. 64-bit x86: +270 bytes of code, 45% faster
  86. 32-bit x86: +450 bytes of code, 75% faster
  87. config BUSYBOX_CONFIG_FEATURE_FAST_TOP
  88. bool "Faster /proc scanning code (+100 bytes)"
  89. default BUSYBOX_DEFAULT_FEATURE_FAST_TOP # all "fast or small" options default to small
  90. help
  91. This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
  92. but code size is slightly bigger.
  93. config BUSYBOX_CONFIG_FEATURE_ETC_NETWORKS
  94. bool "Support /etc/networks"
  95. default BUSYBOX_DEFAULT_FEATURE_ETC_NETWORKS
  96. help
  97. Enable support for network names in /etc/networks. This is
  98. a rarely used feature which allows you to use names
  99. instead of IP/mask pairs in route command.
  100. config BUSYBOX_CONFIG_FEATURE_EDITING
  101. bool "Command line editing"
  102. default BUSYBOX_DEFAULT_FEATURE_EDITING
  103. help
  104. Enable line editing (mainly for shell command line).
  105. config BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN
  106. int "Maximum length of input"
  107. range 128 8192
  108. default BUSYBOX_DEFAULT_FEATURE_EDITING_MAX_LEN
  109. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  110. help
  111. Line editing code uses on-stack buffers for storage.
  112. You may want to decrease this parameter if your target machine
  113. benefits from smaller stack usage.
  114. config BUSYBOX_CONFIG_FEATURE_EDITING_VI
  115. bool "vi-style line editing commands"
  116. default BUSYBOX_DEFAULT_FEATURE_EDITING_VI
  117. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  118. help
  119. Enable vi-style line editing. In shells, this mode can be
  120. turned on and off with "set -o vi" and "set +o vi".
  121. config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
  122. int "History size"
  123. # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
  124. range 0 9999
  125. default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
  126. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  127. help
  128. Specify command history size (0 - disable).
  129. config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
  130. bool "History saving"
  131. default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVEHISTORY
  132. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  133. help
  134. Enable history saving in shells.
  135. config BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT
  136. bool "Save history on shell exit, not after every command"
  137. default BUSYBOX_DEFAULT_FEATURE_EDITING_SAVE_ON_EXIT
  138. depends on BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
  139. help
  140. Save history on shell exit, not after every command.
  141. config BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH
  142. bool "Reverse history search"
  143. default BUSYBOX_DEFAULT_FEATURE_REVERSE_SEARCH
  144. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  145. help
  146. Enable readline-like Ctrl-R combination for reverse history search.
  147. Increases code by about 0.5k.
  148. config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
  149. bool "Tab completion"
  150. default BUSYBOX_DEFAULT_FEATURE_TAB_COMPLETION
  151. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  152. config BUSYBOX_CONFIG_FEATURE_USERNAME_COMPLETION
  153. bool "Username completion"
  154. default BUSYBOX_DEFAULT_FEATURE_USERNAME_COMPLETION
  155. depends on BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
  156. config BUSYBOX_CONFIG_FEATURE_EDITING_FANCY_PROMPT
  157. bool "Fancy shell prompts"
  158. default BUSYBOX_DEFAULT_FEATURE_EDITING_FANCY_PROMPT
  159. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  160. help
  161. Setting this option allows for prompts to use things like \w and
  162. \$ and escape codes.
  163. config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL
  164. bool "Query cursor position from terminal"
  165. default BUSYBOX_DEFAULT_FEATURE_EDITING_ASK_TERMINAL
  166. depends on BUSYBOX_CONFIG_FEATURE_EDITING
  167. help
  168. Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
  169. current cursor position. This information is used to make line
  170. editing more robust in some cases.
  171. If you are not sure whether your terminals respond to this code
  172. correctly, or want to save on code size (about 400 bytes),
  173. then do not turn this option on.
  174. config BUSYBOX_CONFIG_LOCALE_SUPPORT
  175. bool "Enable locale support (system needs locale for this to work)"
  176. default BUSYBOX_DEFAULT_LOCALE_SUPPORT
  177. help
  178. Enable this if your system has locale support and you would like
  179. busybox to support locale settings.
  180. config BUSYBOX_CONFIG_UNICODE_SUPPORT
  181. bool "Support Unicode"
  182. default BUSYBOX_DEFAULT_UNICODE_SUPPORT
  183. help
  184. This makes various applets aware that one byte is not
  185. one character on screen.
  186. Busybox aims to eventually work correctly with Unicode displays.
  187. Any older encodings are not guaranteed to work.
  188. Probably by the time when busybox will be fully Unicode-clean,
  189. other encodings will be mainly of historic interest.
  190. config BUSYBOX_CONFIG_UNICODE_USING_LOCALE
  191. bool "Use libc routines for Unicode (else uses internal ones)"
  192. default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE
  193. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT
  194. help
  195. With this option on, Unicode support is implemented using libc
  196. routines. Otherwise, internal implementation is used.
  197. Internal implementation is smaller.
  198. config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
  199. bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
  200. default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV
  201. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
  202. help
  203. With this option on, Unicode support is activated
  204. only if locale-related variables have the value of the form
  205. "xxxx.utf8"
  206. Otherwise, Unicode support will be always enabled and active.
  207. config BUSYBOX_CONFIG_SUBST_WCHAR
  208. int "Character code to substitute unprintable characters with"
  209. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
  210. default BUSYBOX_DEFAULT_SUBST_WCHAR
  211. help
  212. Typical values are 63 for '?' (works with any output device),
  213. 30 for ASCII substitute control code,
  214. 65533 (0xfffd) for Unicode replacement character.
  215. config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR
  216. int "Range of supported Unicode characters"
  217. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
  218. default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR
  219. help
  220. Any character with Unicode value bigger than this is assumed
  221. to be non-printable on output device. Many applets replace
  222. such characters with substitution character.
  223. The idea is that many valid printable Unicode chars
  224. nevertheless are not displayed correctly. Think about
  225. combining charachers, double-wide hieroglyphs, obscure
  226. characters in dozens of ancient scripts...
  227. Many terminals, terminal emulators, xterms etc will fail
  228. to handle them correctly. Choose the smallest value
  229. which suits your needs.
  230. Typical values are:
  231. 126 - ASCII only
  232. 767 (0x2ff) - there are no combining chars in [0..767] range
  233. (the range includes Latin 1, Latin Ext. A and B),
  234. code is ~700 bytes smaller for this case.
  235. 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
  236. code is ~300 bytes smaller for this case.
  237. 12799 (0x31ff) - nearly all non-ideographic characters are
  238. available in [0..12799] range, including
  239. East Asian scripts like katakana, hiragana, hangul,
  240. bopomofo...
  241. 0 - off, any valid printable Unicode character will be printed.
  242. config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS
  243. bool "Allow zero-width Unicode characters on output"
  244. default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS
  245. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
  246. help
  247. With this option off, any Unicode char with width of 0
  248. is substituted on output.
  249. config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS
  250. bool "Allow wide Unicode characters on output"
  251. default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS
  252. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
  253. help
  254. With this option off, any Unicode char with width > 1
  255. is substituted on output.
  256. config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
  257. bool "Bidirectional character-aware line input"
  258. default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT
  259. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE
  260. help
  261. With this option on, right-to-left Unicode characters
  262. are treated differently on input (e.g. cursor movement).
  263. config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE
  264. bool "In bidi input, support non-ASCII neutral chars too"
  265. default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
  266. depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT
  267. help
  268. In most cases it's enough to treat only ASCII non-letters
  269. (i.e. punctuation, numbers and space) as characters
  270. with neutral directionality.
  271. With this option on, more extensive (and bigger) table
  272. of neutral chars will be used.
  273. config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
  274. bool "Make it possible to enter sequences of chars which are not Unicode"
  275. default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
  276. depends on BUSYBOX_CONFIG_UNICODE_SUPPORT
  277. help
  278. With this option on, on line-editing input (such as used by shells)
  279. invalid UTF-8 bytes are not substituted with the selected
  280. substitution character.
  281. For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
  282. at shell prompt will list file named 0xff (single char name
  283. with char value 255), not file named '?'.
  284. config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP
  285. bool "Non-POSIX, but safer, copying to special nodes"
  286. default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP
  287. help
  288. With this option, "cp file symlink" will delete symlink
  289. and create a regular file. This does not conform to POSIX,
  290. but prevents a symlink attack.
  291. Similarly, "cp file device" will not send file's data
  292. to the device. (To do that, use "cat file >device")
  293. config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE
  294. bool "Give more precise messages when copy fails (cp, mv etc)"
  295. default BUSYBOX_DEFAULT_FEATURE_VERBOSE_CP_MESSAGE
  296. help
  297. Error messages with this feature enabled:
  298. $ cp file /does_not_exist/file
  299. cp: cannot create '/does_not_exist/file': Path does not exist
  300. $ cp file /vmlinuz/file
  301. cp: cannot stat '/vmlinuz/file': Path has non-directory component
  302. If this feature is not enabled, they will be, respectively:
  303. cp: cannot create '/does_not_exist/file': No such file or directory
  304. cp: cannot stat '/vmlinuz/file': Not a directory
  305. This will cost you ~60 bytes.
  306. config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE
  307. bool "Use sendfile system call"
  308. default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE
  309. select BUSYBOX_CONFIG_PLATFORM_LINUX
  310. help
  311. When enabled, busybox will use the kernel sendfile() function
  312. instead of read/write loops to copy data between file descriptors
  313. (for example, cp command does this a lot).
  314. If sendfile() doesn't work, copying code falls back to read/write
  315. loop. sendfile() was originally implemented for faster I/O
  316. from files to sockets, but since Linux 2.6.33 it was extended
  317. to work for many more file types.
  318. config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB
  319. int "Copy buffer size, in kilobytes"
  320. range 1 1024
  321. default BUSYBOX_DEFAULT_FEATURE_COPYBUF_KB
  322. help
  323. Size of buffer used by cp, mv, install, wget etc.
  324. Buffers which are 4 kb or less will be allocated on stack.
  325. Bigger buffers will be allocated with mmap, with fallback to 4 kb
  326. stack buffer if mmap fails.
  327. config BUSYBOX_CONFIG_FEATURE_SKIP_ROOTFS
  328. bool "Skip rootfs in mount table"
  329. default BUSYBOX_DEFAULT_FEATURE_SKIP_ROOTFS
  330. help
  331. Ignore rootfs entry in mount table.
  332. In Linux, kernel has a special filesystem, rootfs, which is initially
  333. mounted on /. It contains initramfs data, if kernel is configured
  334. to have one. Usually, another file system is mounted over / early
  335. in boot process, and therefore most tools which manipulate
  336. mount table, such as df, will skip rootfs entry.
  337. However, some systems do not mount anything on /.
  338. If you need to configure busybox for one of these systems,
  339. you may find it useful to turn this option off to make df show
  340. initramfs statistics.
  341. Otherwise, choose Y.
  342. config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
  343. bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
  344. default BUSYBOX_DEFAULT_MONOTONIC_SYSCALL
  345. select BUSYBOX_CONFIG_PLATFORM_LINUX
  346. help
  347. Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
  348. time intervals (time, ping, traceroute etc need this).
  349. Probably requires Linux 2.6+. If not selected, gettimeofday
  350. will be used instead (which gives wrong results if date/time
  351. is reset).
  352. config BUSYBOX_CONFIG_IOCTL_HEX2STR_ERROR
  353. bool "Use ioctl names rather than hex values in error messages"
  354. default BUSYBOX_DEFAULT_IOCTL_HEX2STR_ERROR
  355. help
  356. Use ioctl names rather than hex values in error messages
  357. (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
  358. saves about 1400 bytes.
  359. config BUSYBOX_CONFIG_FEATURE_HWIB
  360. bool "Support infiniband HW"
  361. default BUSYBOX_DEFAULT_FEATURE_HWIB
  362. help
  363. Support for printing infiniband addresses in
  364. network applets.
  365. endmenu