|  | @@ -30,18 +30,6 @@ config BUSYBOX_EXTRA_COMPAT
 | 
	
		
			
				|  |  |  	  some GNU extensions in libc. You probably only need this option
 | 
	
		
			
				|  |  |  	  if you plan to run busybox on desktop.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -config BUSYBOX_FEATURE_ASSUME_UNICODE
 | 
	
		
			
				|  |  | -	bool "Assume that 1:1 char/glyph correspondence is not true"
 | 
	
		
			
				|  |  | -	default n
 | 
	
		
			
				|  |  | -	help
 | 
	
		
			
				|  |  | -	  This makes various applets aware that one byte is not
 | 
	
		
			
				|  |  | -	  one character on screen.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	  Busybox aims to eventually work correctly with Unicode displays.
 | 
	
		
			
				|  |  | -	  Any older encodings are not guaranteed to work.
 | 
	
		
			
				|  |  | -	  Probably by the time when busybox will be fully Unicode-clean,
 | 
	
		
			
				|  |  | -	  other encodings will be mainly of historic interest.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  choice
 | 
	
		
			
				|  |  |  	prompt "Buffer allocation policy"
 | 
	
		
			
				|  |  |  	default FEATURE_BUFFERS_USE_MALLOC
 | 
	
	
		
			
				|  | @@ -77,7 +65,7 @@ config BUSYBOX_SHOW_USAGE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  config BUSYBOX_FEATURE_VERBOSE_USAGE
 | 
	
		
			
				|  |  |  	bool "Show verbose applet usage messages"
 | 
	
		
			
				|  |  | -	default y
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  |  	select BUSYBOX_SHOW_USAGE
 | 
	
		
			
				|  |  |  	help
 | 
	
		
			
				|  |  |  	  All BusyBox applets will show more verbose help messages when
 | 
	
	
		
			
				|  | @@ -114,7 +102,29 @@ config BUSYBOX_LOCALE_SUPPORT
 | 
	
		
			
				|  |  |  	  Enable this if your system has locale support and you would like
 | 
	
		
			
				|  |  |  	  busybox to support locale settings.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -config BUSYBOX_GETOPT_LONG
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_ASSUME_UNICODE
 | 
	
		
			
				|  |  | +	bool "Support Unicode"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  This makes various applets aware that one byte is not
 | 
	
		
			
				|  |  | +	  one character on screen.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Busybox aims to eventually work correctly with Unicode displays.
 | 
	
		
			
				|  |  | +	  Any older encodings are not guaranteed to work.
 | 
	
		
			
				|  |  | +	  Probably by the time when busybox will be fully Unicode-clean,
 | 
	
		
			
				|  |  | +	  other encodings will be mainly of historic interest.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
 | 
	
		
			
				|  |  | +	bool "Check $LANG environment variable"
 | 
	
		
			
				|  |  | +	default y
 | 
	
		
			
				|  |  | +	depends on BUSYBOX_FEATURE_ASSUME_UNICODE && !BUSYBOX_LOCALE_SUPPORT
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  With this option on, Unicode support is activated
 | 
	
		
			
				|  |  | +	  only if LANG variable has the value of the form "xxxx.utf8"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Otherwise, Unicode support will be always enabled and active.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_LONG_OPTS
 | 
	
		
			
				|  |  |  	bool "Support for --long-options"
 | 
	
		
			
				|  |  |  	default y
 | 
	
		
			
				|  |  |  	help
 | 
	
	
		
			
				|  | @@ -131,17 +141,17 @@ config BUSYBOX_FEATURE_DEVPTS
 | 
	
		
			
				|  |  |  	  /dev/ttyp<number> will be used. To use this option, you should have
 | 
	
		
			
				|  |  |  	  devpts mounted.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_FEATURE_CLEAN_UP
 | 
	
		
			
				|  |  | -#	bool "Clean up all memory before exiting (usually not needed)"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  As a size optimization, busybox normally exits without explicitly
 | 
	
		
			
				|  |  | -#	  freeing dynamically allocated memory or closing files. This saves
 | 
	
		
			
				|  |  | -#	  space since the OS will clean up for us, but it can confuse debuggers
 | 
	
		
			
				|  |  | -#	  like valgrind, which report tons of memory and resource leaks.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  Don't enable this unless you have a really good reason to clean
 | 
	
		
			
				|  |  | -#	  things up manually.
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_CLEAN_UP
 | 
	
		
			
				|  |  | +	bool "Clean up all memory before exiting (usually not needed)"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  As a size optimization, busybox normally exits without explicitly
 | 
	
		
			
				|  |  | +	  freeing dynamically allocated memory or closing files. This saves
 | 
	
		
			
				|  |  | +	  space since the OS will clean up for us, but it can confuse debuggers
 | 
	
		
			
				|  |  | +	  like valgrind, which report tons of memory and resource leaks.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Don't enable this unless you have a really good reason to clean
 | 
	
		
			
				|  |  | +	  things up manually.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  config BUSYBOX_FEATURE_PIDFILE
 | 
	
		
			
				|  |  |  	bool "Support writing pidfiles"
 | 
	
	
		
			
				|  | @@ -152,7 +162,7 @@ config BUSYBOX_FEATURE_PIDFILE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  config BUSYBOX_FEATURE_SUID
 | 
	
		
			
				|  |  |  	bool "Support for SUID/SGID handling"
 | 
	
		
			
				|  |  | -	default y
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  |  	help
 | 
	
		
			
				|  |  |  	  With this option you can install the busybox binary belonging
 | 
	
		
			
				|  |  |  	  to root with the suid bit set, and it will automatically drop
 | 
	
	
		
			
				|  | @@ -167,91 +177,91 @@ config BUSYBOX_FEATURE_SUID
 | 
	
		
			
				|  |  |  	  crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
 | 
	
		
			
				|  |  |  	  traceroute, vlock.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_FEATURE_SUID_CONFIG
 | 
	
		
			
				|  |  | -#	bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
 | 
	
		
			
				|  |  | -#	default n if FEATURE_SUID
 | 
	
		
			
				|  |  | -#	depends on BUSYBOX_FEATURE_SUID
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Allow the SUID / SGID state of an applet to be determined at runtime
 | 
	
		
			
				|  |  | -#	  by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
 | 
	
		
			
				|  |  | -#	  The format of this file is as follows:
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  An example might help:
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  [SUID]
 | 
	
		
			
				|  |  | -#	  su = ssx root.0 # applet su can be run by anyone and runs with
 | 
	
		
			
				|  |  | -#	                  # euid=0/egid=0
 | 
	
		
			
				|  |  | -#	  su = ssx        # exactly the same
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  mount = sx- root.disk # applet mount can be run by root and members
 | 
	
		
			
				|  |  | -#	                        # of group disk and runs with euid=0
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  cp = --- # disable applet cp for everyone
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  The file has to be owned by user root, group root and has to be
 | 
	
		
			
				|  |  | -#	  writeable only by root:
 | 
	
		
			
				|  |  | -#	        (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
 | 
	
		
			
				|  |  | -#	  The busybox executable has to be owned by user root, group
 | 
	
		
			
				|  |  | -#	  root and has to be setuid root for this to work:
 | 
	
		
			
				|  |  | -#	        (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  Robert 'sandman' Griebl has more information here:
 | 
	
		
			
				|  |  | -#	  <url: http://www.softforge.de/bb/suid.html >.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#config BUSYBOX_FEATURE_SUID_CONFIG_QUIET
 | 
	
		
			
				|  |  | -#	bool "Suppress warning message if /etc/busybox.conf is not readable"
 | 
	
		
			
				|  |  | -#	default y
 | 
	
		
			
				|  |  | -#	depends on BUSYBOX_FEATURE_SUID_CONFIG
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  /etc/busybox.conf should be readable by the user needing the SUID,
 | 
	
		
			
				|  |  | -#	  check this option to avoid users to be notified about missing
 | 
	
		
			
				|  |  | -#	  permissions.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#config BUSYBOX_SELINUX
 | 
	
		
			
				|  |  | -#	bool "Support NSA Security Enhanced Linux"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Enable support for SELinux in applets ls, ps, and id. Also provide
 | 
	
		
			
				|  |  | -#	  the option of compiling in SELinux applets.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  If you do not have a complete SELinux userland installed, this stuff
 | 
	
		
			
				|  |  | -#	  will not compile. Go visit
 | 
	
		
			
				|  |  | -#		http://www.nsa.gov/selinux/index.html
 | 
	
		
			
				|  |  | -#	  to download the necessary stuff to allow busybox to compile with
 | 
	
		
			
				|  |  | -#	  this option enabled. Specifially, libselinux 1.28 or better is
 | 
	
		
			
				|  |  | -#	  directly required by busybox. If the installation is located in a
 | 
	
		
			
				|  |  | -#	  non-standard directory, provide it by invoking make as follows:
 | 
	
		
			
				|  |  | -#		CFLAGS=-I<libselinux-include-path> \
 | 
	
		
			
				|  |  | -#		LDFLAGS=-L<libselinux-lib-path> \
 | 
	
		
			
				|  |  | -#		make
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#config BUSYBOX_FEATURE_PREFER_APPLETS
 | 
	
		
			
				|  |  | -##	bool "exec prefers applets"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  This is an experimental option which directs applets about to
 | 
	
		
			
				|  |  | -#	  call 'exec' to try and find an applicable busybox applet before
 | 
	
		
			
				|  |  | -#	  searching the PATH. This is typically done by exec'ing
 | 
	
		
			
				|  |  | -#	  /proc/self/exe.
 | 
	
		
			
				|  |  | -#	  This may affect shell, find -exec, xargs and similar applets.
 | 
	
		
			
				|  |  | -#	  They will use applets even if /bin/<applet> -> busybox link
 | 
	
		
			
				|  |  | -#	  is missing (or is not a link to busybox). However, this causes
 | 
	
		
			
				|  |  | -#	  problems in chroot jails without mounted /proc and with ps/top
 | 
	
		
			
				|  |  | -#	  (command name can be shown as 'exe' for applets started this way).
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#config BUSYBOX_BUSYBOX_EXEC_PATH
 | 
	
		
			
				|  |  | -#	string "Path to BusyBox executable"
 | 
	
		
			
				|  |  | -#	default "/proc/self/exe"
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  When Busybox applets need to run other busybox applets, BusyBox
 | 
	
		
			
				|  |  | -#	  sometimes needs to exec() itself. When the /proc filesystem is
 | 
	
		
			
				|  |  | -#	  mounted, /proc/self/exe always points to the currently running
 | 
	
		
			
				|  |  | -#	  executable. If you haven't got /proc, set this to wherever you
 | 
	
		
			
				|  |  | -#	  want to run BusyBox from.
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_SUID_CONFIG
 | 
	
		
			
				|  |  | +	bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
 | 
	
		
			
				|  |  | +	default n if FEATURE_SUID
 | 
	
		
			
				|  |  | +	depends on BUSYBOX_FEATURE_SUID
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Allow the SUID / SGID state of an applet to be determined at runtime
 | 
	
		
			
				|  |  | +	  by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
 | 
	
		
			
				|  |  | +	  The format of this file is as follows:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  <applet> = [Ssx-][Ssx-][x-] (<username>|<uid>).(<groupname>|<gid>)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  An example might help:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  [SUID]
 | 
	
		
			
				|  |  | +	  su = ssx root.0 # applet su can be run by anyone and runs with
 | 
	
		
			
				|  |  | +	                  # euid=0/egid=0
 | 
	
		
			
				|  |  | +	  su = ssx        # exactly the same
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  mount = sx- root.disk # applet mount can be run by root and members
 | 
	
		
			
				|  |  | +	                        # of group disk and runs with euid=0
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  cp = --- # disable applet cp for everyone
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  The file has to be owned by user root, group root and has to be
 | 
	
		
			
				|  |  | +	  writeable only by root:
 | 
	
		
			
				|  |  | +	        (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
 | 
	
		
			
				|  |  | +	  The busybox executable has to be owned by user root, group
 | 
	
		
			
				|  |  | +	  root and has to be setuid root for this to work:
 | 
	
		
			
				|  |  | +	        (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Robert 'sandman' Griebl has more information here:
 | 
	
		
			
				|  |  | +	  <url: http://www.softforge.de/bb/suid.html >.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_SUID_CONFIG_QUIET
 | 
	
		
			
				|  |  | +	bool "Suppress warning message if /etc/busybox.conf is not readable"
 | 
	
		
			
				|  |  | +	default y
 | 
	
		
			
				|  |  | +	depends on BUSYBOX_FEATURE_SUID_CONFIG
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  /etc/busybox.conf should be readable by the user needing the SUID,
 | 
	
		
			
				|  |  | +	  check this option to avoid users to be notified about missing
 | 
	
		
			
				|  |  | +	  permissions.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_SELINUX
 | 
	
		
			
				|  |  | +	bool "Support NSA Security Enhanced Linux"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Enable support for SELinux in applets ls, ps, and id. Also provide
 | 
	
		
			
				|  |  | +	  the option of compiling in SELinux applets.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  If you do not have a complete SELinux userland installed, this stuff
 | 
	
		
			
				|  |  | +	  will not compile. Go visit
 | 
	
		
			
				|  |  | +		http://www.nsa.gov/selinux/index.html
 | 
	
		
			
				|  |  | +	  to download the necessary stuff to allow busybox to compile with
 | 
	
		
			
				|  |  | +	  this option enabled. Specifially, libselinux 1.28 or better is
 | 
	
		
			
				|  |  | +	  directly required by busybox. If the installation is located in a
 | 
	
		
			
				|  |  | +	  non-standard directory, provide it by invoking make as follows:
 | 
	
		
			
				|  |  | +		CFLAGS=-I<libselinux-include-path> \
 | 
	
		
			
				|  |  | +		LDFLAGS=-L<libselinux-lib-path> \
 | 
	
		
			
				|  |  | +		make
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_PREFER_APPLETS
 | 
	
		
			
				|  |  | +	bool "exec prefers applets"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  This is an experimental option which directs applets about to
 | 
	
		
			
				|  |  | +	  call 'exec' to try and find an applicable busybox applet before
 | 
	
		
			
				|  |  | +	  searching the PATH. This is typically done by exec'ing
 | 
	
		
			
				|  |  | +	  /proc/self/exe.
 | 
	
		
			
				|  |  | +	  This may affect shell, find -exec, xargs and similar applets.
 | 
	
		
			
				|  |  | +	  They will use applets even if /bin/<applet> -> busybox link
 | 
	
		
			
				|  |  | +	  is missing (or is not a link to busybox). However, this causes
 | 
	
		
			
				|  |  | +	  problems in chroot jails without mounted /proc and with ps/top
 | 
	
		
			
				|  |  | +	  (command name can be shown as 'exe' for applets started this way).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_BUSYBOX_EXEC_PATH
 | 
	
		
			
				|  |  | +	string "Path to BusyBox executable"
 | 
	
		
			
				|  |  | +	default "/proc/self/exe"
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  When Busybox applets need to run other busybox applets, BusyBox
 | 
	
		
			
				|  |  | +	  sometimes needs to exec() itself. When the /proc filesystem is
 | 
	
		
			
				|  |  | +	  mounted, /proc/self/exe always points to the currently running
 | 
	
		
			
				|  |  | +	  executable. If you haven't got /proc, set this to wherever you
 | 
	
		
			
				|  |  | +	  want to run BusyBox from.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # These are auto-selected by other options
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -287,39 +297,39 @@ config BUSYBOX_STATIC
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_PIE
 | 
	
		
			
				|  |  | -#	bool "Build BusyBox as a position independent executable"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	depends on !BUSYBOX_STATIC
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  (TODO: what is it and why/when is it useful?)
 | 
	
		
			
				|  |  | -#	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#config BUSYBOX_NOMMU
 | 
	
		
			
				|  |  | -#	bool "Force NOMMU build"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Busybox tries to detect whether architecture it is being
 | 
	
		
			
				|  |  | -#	  built against supports MMU or not. If this detection fails,
 | 
	
		
			
				|  |  | -#	  or if you want to build NOMMU version of busybox for testing,
 | 
	
		
			
				|  |  | -#	  you may force NOMMU build here.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  | +config BUSYBOX_PIE
 | 
	
		
			
				|  |  | +	bool "Build BusyBox as a position independent executable"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	depends on !BUSYBOX_STATIC
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  (TODO: what is it and why/when is it useful?)
 | 
	
		
			
				|  |  | +	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_NOMMU
 | 
	
		
			
				|  |  | +	bool "Force NOMMU build"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Busybox tries to detect whether architecture it is being
 | 
	
		
			
				|  |  | +	  built against supports MMU or not. If this detection fails,
 | 
	
		
			
				|  |  | +	  or if you want to build NOMMU version of busybox for testing,
 | 
	
		
			
				|  |  | +	  you may force NOMMU build here.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Most people will leave this set to 'N'.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # PIE can be made to work with BUILD_LIBBUSYBOX, but currently
 | 
	
		
			
				|  |  |  # build system does not support that
 | 
	
		
			
				|  |  | -#config BUSYBOX_BUILD_LIBBUSYBOX
 | 
	
		
			
				|  |  | -#	bool "Build shared libbusybox"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	depends on !BUSYBOX_FEATURE_PREFER_APPLETS && !BUSYBOX_PIE && !BUSYBOX_STATIC
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Build a shared library libbusybox.so.N.N.N which contains all
 | 
	
		
			
				|  |  | -#	  busybox code.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  This feature allows every applet to be built as a tiny
 | 
	
		
			
				|  |  | -#	  separate executable. Enabling it for "one big busybox binary"
 | 
	
		
			
				|  |  | -#	  approach serves no purpose and increases code size.
 | 
	
		
			
				|  |  | -#	  You should almost certainly say "no" to this.
 | 
	
		
			
				|  |  | +config BUSYBOX_BUILD_LIBBUSYBOX
 | 
	
		
			
				|  |  | +	bool "Build shared libbusybox"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	depends on !BUSYBOX_FEATURE_PREFER_APPLETS && !BUSYBOX_PIE && !BUSYBOX_STATIC
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Build a shared library libbusybox.so.N.N.N which contains all
 | 
	
		
			
				|  |  | +	  busybox code.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  This feature allows every applet to be built as a tiny
 | 
	
		
			
				|  |  | +	  separate executable. Enabling it for "one big busybox binary"
 | 
	
		
			
				|  |  | +	  approach serves no purpose and increases code size.
 | 
	
		
			
				|  |  | +	  You should almost certainly say "no" to this.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ### config FEATURE_FULL_LIBBUSYBOX
 | 
	
		
			
				|  |  |  ###	bool "Feature-complete libbusybox"
 | 
	
	
		
			
				|  | @@ -340,32 +350,32 @@ config BUSYBOX_STATIC
 | 
	
		
			
				|  |  |  ###
 | 
	
		
			
				|  |  |  ###	  Say 'N' if in doubt.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_FEATURE_INDIVIDUAL
 | 
	
		
			
				|  |  | -#	bool "Produce a binary for each applet, linked against libbusybox"
 | 
	
		
			
				|  |  | -#	default y
 | 
	
		
			
				|  |  | -#	depends on BUSYBOX_BUILD_LIBBUSYBOX
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  If your CPU architecture doesn't allow for sharing text/rodata
 | 
	
		
			
				|  |  | -#	  sections of running binaries, but allows for runtime dynamic
 | 
	
		
			
				|  |  | -#	  libraries, this option will allow you to reduce memory footprint
 | 
	
		
			
				|  |  | -#	  when you have many different applets running at once.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  If your CPU architecture allows for sharing text/rodata,
 | 
	
		
			
				|  |  | -#	  having single binary is more optimal.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  Each applet will be a tiny program, dynamically linked
 | 
	
		
			
				|  |  | -#	  against libbusybox.so.N.N.N.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  You need to have a working dynamic linker.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#config BUSYBOX_FEATURE_SHARED_BUSYBOX
 | 
	
		
			
				|  |  | -#	bool "Produce additional busybox binary linked against libbusybox"
 | 
	
		
			
				|  |  | -#	default y
 | 
	
		
			
				|  |  | -#	depends on BUSYBOX_BUILD_LIBBUSYBOX
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Build busybox, dynamically linked against libbusybox.so.N.N.N.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  You need to have a working dynamic linker.
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_INDIVIDUAL
 | 
	
		
			
				|  |  | +	bool "Produce a binary for each applet, linked against libbusybox"
 | 
	
		
			
				|  |  | +	default y
 | 
	
		
			
				|  |  | +	depends on BUSYBOX_BUILD_LIBBUSYBOX
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  If your CPU architecture doesn't allow for sharing text/rodata
 | 
	
		
			
				|  |  | +	  sections of running binaries, but allows for runtime dynamic
 | 
	
		
			
				|  |  | +	  libraries, this option will allow you to reduce memory footprint
 | 
	
		
			
				|  |  | +	  when you have many different applets running at once.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  If your CPU architecture allows for sharing text/rodata,
 | 
	
		
			
				|  |  | +	  having single binary is more optimal.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Each applet will be a tiny program, dynamically linked
 | 
	
		
			
				|  |  | +	  against libbusybox.so.N.N.N.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  You need to have a working dynamic linker.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_FEATURE_SHARED_BUSYBOX
 | 
	
		
			
				|  |  | +	bool "Produce additional busybox binary linked against libbusybox"
 | 
	
		
			
				|  |  | +	default y
 | 
	
		
			
				|  |  | +	depends on BUSYBOX_BUILD_LIBBUSYBOX
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Build busybox, dynamically linked against libbusybox.so.N.N.N.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  You need to have a working dynamic linker.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ### config BUILD_AT_ONCE
 | 
	
		
			
				|  |  |  ###	bool "Compile all sources at once"
 | 
	
	
		
			
				|  | @@ -411,6 +421,12 @@ config BUSYBOX_CROSS_COMPILER_PREFIX
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  Native builds leave this empty.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +config BUSYBOX_EXTRA_CFLAGS
 | 
	
		
			
				|  |  | +	string "Additional CFLAGS"
 | 
	
		
			
				|  |  | +	default ""
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Additional CFLAGS to pass to the compiler verbatim.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  endmenu
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  menu 'Debugging Options'
 | 
	
	
		
			
				|  | @@ -426,25 +442,24 @@ config BUSYBOX_DEBUG
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	  Most people should answer N.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_DEBUG_PESSIMIZE
 | 
	
		
			
				|  |  | -#	bool "Disable compiler optimizations"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	depends on BUSYBOX_DEBUG
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  The compiler's optimization of source code can eliminate and reorder
 | 
	
		
			
				|  |  | -#	  code, resulting in an executable that's hard to understand when
 | 
	
		
			
				|  |  | -#	  stepping through it with a debugger. This switches it off, resulting
 | 
	
		
			
				|  |  | -#	  in a much bigger executable that more closely matches the source
 | 
	
		
			
				|  |  | -#	  code.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -# triggers problems on cris with __attribute__((packed))
 | 
	
		
			
				|  |  | -#config BUSYBOX_WERROR
 | 
	
		
			
				|  |  | -#	bool "Abort compilation on any warning"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Selecting this will add -Werror to gcc command line.
 | 
	
		
			
				|  |  | -#
 | 
	
		
			
				|  |  | -#	  Most people should answer N.
 | 
	
		
			
				|  |  | +config BUSYBOX_DEBUG_PESSIMIZE
 | 
	
		
			
				|  |  | +	bool "Disable compiler optimizations"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	depends on BUSYBOX_DEBUG
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  The compiler's optimization of source code can eliminate and reorder
 | 
	
		
			
				|  |  | +	  code, resulting in an executable that's hard to understand when
 | 
	
		
			
				|  |  | +	  stepping through it with a debugger. This switches it off, resulting
 | 
	
		
			
				|  |  | +	  in a much bigger executable that more closely matches the source
 | 
	
		
			
				|  |  | +	  code.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +config BUSYBOX_WERROR
 | 
	
		
			
				|  |  | +	bool "Abort compilation on any warning"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Selecting this will add -Werror to gcc command line.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	  Most people should answer N.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  choice
 | 
	
		
			
				|  |  |  	prompt "Additional debugging library"
 | 
	
	
		
			
				|  | @@ -488,14 +503,14 @@ config BUSYBOX_EFENCE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  endchoice
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_INCLUDE_SUSv2
 | 
	
		
			
				|  |  | -#	bool "Enable obsolete features removed before SUSv3?"
 | 
	
		
			
				|  |  | -#	default y
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  This option will enable backwards compatibility with SuSv2,
 | 
	
		
			
				|  |  | -#	  specifically, old-style numeric options ('command -1 <file>')
 | 
	
		
			
				|  |  | -#	  will be supported in head, tail, and fold. (Note: should
 | 
	
		
			
				|  |  | -#	  affect renice too.)
 | 
	
		
			
				|  |  | +config BUSYBOX_INCLUDE_SUSv2
 | 
	
		
			
				|  |  | +	bool "Enable obsolete features removed before SUSv3?"
 | 
	
		
			
				|  |  | +	default y
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  This option will enable backwards compatibility with SuSv2,
 | 
	
		
			
				|  |  | +	  specifically, old-style numeric options ('command -1 <file>')
 | 
	
		
			
				|  |  | +	  will be supported in head, tail, and fold. (Note: should
 | 
	
		
			
				|  |  | +	  affect renice too.)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ### config PARSE
 | 
	
		
			
				|  |  |  ### 	bool "Uniform config file parser debugging applet: parse"
 | 
	
	
		
			
				|  | @@ -504,12 +519,12 @@ endmenu
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  menu 'Installation Options'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#config BUSYBOX_INSTALL_NO_USR
 | 
	
		
			
				|  |  | -#	bool "Don't use /usr"
 | 
	
		
			
				|  |  | -#	default n
 | 
	
		
			
				|  |  | -#	help
 | 
	
		
			
				|  |  | -#	  Disable use of /usr. Don't activate this option if you don't know
 | 
	
		
			
				|  |  | -#	  that you really want this behaviour.
 | 
	
		
			
				|  |  | +config BUSYBOX_INSTALL_NO_USR
 | 
	
		
			
				|  |  | +	bool "Don't use /usr"
 | 
	
		
			
				|  |  | +	default n
 | 
	
		
			
				|  |  | +	help
 | 
	
		
			
				|  |  | +	  Disable use of /usr. Don't activate this option if you don't know
 | 
	
		
			
				|  |  | +	  that you really want this behaviour.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  choice
 | 
	
		
			
				|  |  |  	prompt "Applets links"
 | 
	
	
		
			
				|  | @@ -599,8 +614,7 @@ source package/busybox/config/networking/Config.in
 | 
	
		
			
				|  |  |  source package/busybox/config/printutils/Config.in
 | 
	
		
			
				|  |  |  source package/busybox/config/mailutils/Config.in
 | 
	
		
			
				|  |  |  source package/busybox/config/procps/Config.in
 | 
	
		
			
				|  |  | -# disable, gcc 4.4.0 problems
 | 
	
		
			
				|  |  | -#source package/busybox/config/runit/Config.in
 | 
	
		
			
				|  |  | +source package/busybox/config/runit/Config.in
 | 
	
		
			
				|  |  |  source package/busybox/config/selinux/Config.in
 | 
	
		
			
				|  |  |  source package/busybox/config/shell/Config.in
 | 
	
		
			
				|  |  |  source package/busybox/config/sysklogd/Config.in
 |