summaryrefslogtreecommitdiff
path: root/core/kconfig/uclibc-kconfigs
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-03-18 23:51:32 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-03-18 23:51:32 +0100
commit60099890f36754d9fd4c1ec00d9679ba3de5d3b6 (patch)
tree5379b7f6694de0b0c954e9c5388612d8ba6c1a1d /core/kconfig/uclibc-kconfigs
parentef94bcb8905c8c8fefc272dbcb2d5ee0c4efbe35 (diff)
downloadembtoolkit-60099890f36754d9fd4c1ec00d9679ba3de5d3b6.tar.gz
embtoolkit-60099890f36754d9fd4c1ec00d9679ba3de5d3b6.tar.bz2
embtoolkit-60099890f36754d9fd4c1ec00d9679ba3de5d3b6.tar.xz
Move kconfig/ to core/
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'core/kconfig/uclibc-kconfigs')
-rw-r--r--core/kconfig/uclibc-kconfigs/embtk-uclibc.kconfig79
-rw-r--r--core/kconfig/uclibc-kconfigs/uclibc-arch.kconfig223
-rw-r--r--core/kconfig/uclibc-kconfigs/uclibc-arm.kconfig39
-rw-r--r--core/kconfig/uclibc-kconfigs/uclibc-mips.kconfig79
-rw-r--r--core/kconfig/uclibc-kconfigs/uclibc.kconfig2214
5 files changed, 2634 insertions, 0 deletions
diff --git a/core/kconfig/uclibc-kconfigs/embtk-uclibc.kconfig b/core/kconfig/uclibc-kconfigs/embtk-uclibc.kconfig
new file mode 100644
index 0000000..087f6f2
--- /dev/null
+++ b/core/kconfig/uclibc-kconfigs/embtk-uclibc.kconfig
@@ -0,0 +1,79 @@
+################################################################################
+# Embtoolkit
+# Copyright(C) 2009-2012 GAYE Abdoulaye Walsimou.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+################################################################################
+#
+# \file uclibc.kconfig
+# \brief uclibc.kconfig of Embtoolkit, similar to Configs/Config.in
+# \author Abdoulaye Walsimou GAYE <awg@embtoolkit.org>
+# \date September 2009
+################################################################################
+
+
+#
+# Embtk specific
+#
+
+comment "----------------------------------------------------------------------"
+comment "----- uClibc C library configuration"
+comment "----------------------------------------------------------------------"
+
+choice
+ prompt "uClibc version to use"
+ help
+ Which uClibc version to use.
+
+ config EMBTK_UCLIBC_VERSION_0_9_32
+ bool "uClibc-0.9.32"
+ select EMBTK_UCLIBC_NEED_PATCH
+ config EMBTK_UCLIBC_VERSION_GIT
+ bool "Use a branch of uClibc git repository"
+ help
+ see http://git.uclibc.org/uClibc
+endchoice
+
+config EMBTK_UCLIBC_VERSION_STRING
+ string
+ default "0.9.32" if EMBTK_UCLIBC_VERSION_0_9_32
+ default "git" if EMBTK_UCLIBC_VERSION_GIT
+
+config EMBTK_UCLIBC_REFSPEC
+ string
+ default "toolchain"
+
+config EMBTK_UCLIBC_GIT_BRANCH
+ string "Branch to use"
+ default "master"
+ depends on EMBTK_UCLIBC_VERSION_GIT
+ help
+ The branch of the git repository to use, the default is master.
+
+config EMBTK_UCLIBC_GIT_REVISION
+ string "Checkout a specific revision instead of the latest"
+ depends on EMBTK_UCLIBC_VERSION_GIT
+ help
+ Chechout a specific revision instead of the latest.
+
+config EMBTK_UCLIBC_NEED_PATCH
+ bool
+config EMBTK_UCLIBC_NEED_AUTORECONF
+ bool
+
+#
+# uClibc specific
+#
+source core/kconfig/uclibc-kconfigs/uclibc.kconfig
diff --git a/core/kconfig/uclibc-kconfigs/uclibc-arch.kconfig b/core/kconfig/uclibc-kconfigs/uclibc-arch.kconfig
new file mode 100644
index 0000000..34d167f
--- /dev/null
+++ b/core/kconfig/uclibc-kconfigs/uclibc-arch.kconfig
@@ -0,0 +1,223 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+
+#
+# Binary format
+#
+if !KEMBTK_UCLIBC_ARCH_USE_MMU
+choice
+ prompt "Target File Format"
+config KEMBTK_UCLIBC_UCLIBC_FORMAT_ELF
+ bool "ELF"
+ depends on KEMBTK_UCLIBC_ARCH_USE_MMU
+config KEMBTK_UCLIBC_UCLIBC_FORMAT_FDPIC_ELF
+ bool "FDPIC ELF"
+ depends on !KEMBTK_UCLIBC_ARCH_USE_MMU && (KEMBTK_UCLIBC_TARGET_bfin || KEMBTK_UCLIBC_TARGET_frv)
+ select KEMBTK_UCLIBC_DOPIC
+config KEMBTK_UCLIBC_UCLIBC_FORMAT_DSBT_ELF
+ bool "DBST ELF"
+ depends on !KEMBTK_UCLIBC_ARCH_USE_MMU && KEMBTK_UCLIBC_TARGET_c6x
+ select KEMBTK_UCLIBC_DOPIC
+config KEMBTK_UCLIBC_UCLIBC_FORMAT_FLAT
+ bool "STATIC FLAT"
+ depends on !KEMBTK_UCLIBC_ARCH_USE_MMU
+ select KEMBTK_UCLIBC_ARCH_HAS_NO_LDSO
+config KEMBTK_UCLIBC_UCLIBC_FORMAT_FLAT_SEP_DATA
+ bool "STATIC FLAT (sep-data)"
+ depends on !KEMBTK_UCLIBC_ARCH_USE_MMU
+ select KEMBTK_UCLIBC_ARCH_HAS_NO_LDSO
+config KEMBTK_UCLIBC_UCLIBC_FORMAT_SHARED_FLAT
+ bool "SHARED FLAT"
+ depends on !KEMBTK_UCLIBC_ARCH_USE_MMU
+ select KEMBTK_UCLIBC_ARCH_HAS_NO_LDSO
+ help
+ Pick this one if you are using uClinux and wish to build
+ uClibc as a flat-format shared library.
+endchoice
+endif
+if KEMBTK_UCLIBC_ARCH_USE_MMU
+comment "Using ELF file format"
+endif
+
+config KEMBTK_UCLIBC_UCLIBC_SHARED_FLAT_ID
+ int "Shared library ID"
+ default 1
+ depends on KEMBTK_UCLIBC_UCLIBC_FORMAT_SHARED_FLAT
+ help
+ When using flat shared libraries, every library has a unique
+ system-wide identifier. Identifier 0 is reserved for
+ executables and true shared libraries have identifiers
+ starting at 1. The maximum shared library identifier is
+ determined by the kernel and is usually 3. Shared library
+ N must be available on the target system as "/lib/libN.so".
+
+ When a shared C library is used, it usually has identifier 1,
+ but you can use this option to select a different identifier
+ if you need to.
+
+
+
+#
+# Endian Format
+#
+config KEMBTK_UCLIBC_ARCH_ANY_ENDIAN
+ bool
+ default n
+config KEMBTK_UCLIBC_ARCH_BIG_ENDIAN
+ bool
+ default n
+config KEMBTK_UCLIBC_ARCH_LITTLE_ENDIAN
+ bool
+ default n
+if KEMBTK_UCLIBC_ARCH_ANY_ENDIAN
+#choice
+# prompt "Target Processor Endianness"
+# help
+# This is the endianness you wish to use. Choose either Big
+# Endian, or Little Endian.
+config KEMBTK_UCLIBC_ARCH_WANTS_BIG_ENDIAN
+ bool
+ default n
+ select KEMBTK_UCLIBC_ARCH_BIG_ENDIAN
+
+config KEMBTK_UCLIBC_ARCH_WANTS_LITTLE_ENDIAN
+ bool
+ default n
+ select KEMBTK_UCLIBC_ARCH_LITTLE_ENDIAN
+#endchoice
+endif
+# if the arch only supports one endian, just display the setting
+if !KEMBTK_UCLIBC_ARCH_ANY_ENDIAN && KEMBTK_UCLIBC_ARCH_LITTLE_ENDIAN
+comment "Using Little Endian"
+endif
+if !KEMBTK_UCLIBC_ARCH_ANY_ENDIAN && KEMBTK_UCLIBC_ARCH_BIG_ENDIAN
+comment "Using Big Endian"
+endif
+
+config KEMBTK_UCLIBC_ARCH_HAS_NO_MMU
+ bool
+if KEMBTK_UCLIBC_ARCH_HAS_NO_MMU
+comment "Target CPU lacks a memory management unit (MMU)"
+endif
+
+config KEMBTK_UCLIBC_ARCH_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ depends on !KEMBTK_UCLIBC_ARCH_HAS_NO_MMU
+ default y
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_ARCH_USE_MMU
+ bool "Do you want to utilize the MMU?"
+ depends on KEMBTK_UCLIBC_ARCH_HAS_MMU
+ default y
+ help
+ If your target CPU has a MMU, and you wish to actually utilize it,
+ then answer Y here. Normal Linux requires an MMU.
+
+ If you're unsure, answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc.
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FPU
+ bool
+ default n
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS && !KEMBTK_UCLIBC_UCLIBC_HAS_FPU
+ default y
+
+config KEMBTK_UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config KEMBTK_UCLIBC_DO_XSI_MATH
+ bool "Enable XSI math extensions to the ISO C standard (bessel)"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
+ help
+ X/Open System Interfaces extensions to ISO C math functions
+ (differential equation functions):
+
+ j0, j1, jn - Bessel functions of the first kind
+ y0, y1, yn - Bessel functions of the second kind
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FENV
+ bool
+ default n
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
+ help
+ If you want the uClibc math library to contain the C99 floating
+ point environment, rounding and exception handling functions then
+ say Y here.
+
+ NOTE: Supported architectures currently include:
+ i386
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_LONG_DOUBLE_MATH
+ bool "Enable long double support"
+ depends on KEMBTK_UCLIBC_DO_C99_MATH
+ depends on KEMBTK_UCLIBC_TARGET_i386 || KEMBTK_UCLIBC_TARGET_m68k || KEMBTK_UCLIBC_TARGET_sparc || KEMBTK_UCLIBC_TARGET_x86_64 || KEMBTK_UCLIBC_TARGET_powerpc || KEMBTK_UCLIBC_TARGET_sh
+ default y
+ help
+ If you want the uClibc math library to contain the full set of C99
+ long double math library features, then answer Y. Don't enable it
+ for sparc w/ 32bit ABI.
+
+config KEMBTK_UCLIBC_KERNEL_HEADERS
+ string
+ default "/usr/include"
+ help
+ The kernel source you use to compile with should be the same
+ as the Linux kernel you run your apps on. uClibc doesn't even
+ try to achieve binary compatibility across kernel versions.
+ So don't expect, for example, uClibc compiled with Linux kernel
+ 2.0.x to implement lchown properly, since 2.0.x can't do that.
+ Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc,
+ but won't work at all. You have been warned.
+
+config KEMBTK_UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !KEMBTK_UCLIBC_ARCH_USE_MMU
+ default y
+
+config KEMBTK_UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
diff --git a/core/kconfig/uclibc-kconfigs/uclibc-arm.kconfig b/core/kconfig/uclibc-kconfigs/uclibc-arm.kconfig
new file mode 100644
index 0000000..25aa88d
--- /dev/null
+++ b/core/kconfig/uclibc-kconfigs/uclibc-arm.kconfig
@@ -0,0 +1,39 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config KEMBTK_UCLIBC_TARGET_ARCH
+ string
+ default "arm"
+
+config KEMBTK_UCLIBC_FORCE_OPTIONS_FOR_ARCH
+ bool
+ default y
+ select KEMBTK_UCLIBC_ARCH_ANY_ENDIAN
+
+config KEMBTK_UCLIBC_CONFIG_ARM_EABI
+ bool
+ default y
+ help
+ If you say 'y' here, functions and constants required by the
+ ARM EABI will be built into the library. You should say 'y'
+ if your compiler uses the ARM EABI, in which case you will also
+ need a kernel supporting the EABI system call interface.
+
+ If you say 'n' here, then the library will be built for the
+ old Linux ABI.
+
+config KEMBTK_UCLIBC_COMPILE_IN_THUMB_MODE
+ bool "Build using Thumb mode"
+ select KEMBTK_UCLIBC_USE_BX
+ help
+ Say 'y' here to force building uClibc in thumb mode.
+ Say 'n' to use your compiler's default mode.
+
+config KEMBTK_UCLIBC_USE_BX
+ bool "Use BX in function return"
+ help
+ Say 'y' to use BX to return from functions on your thumb-aware
+ processor. Say 'y' if you need to use interworking. Say 'n' if not.
+ It is safe to say 'y' even if you're not doing interworking.
diff --git a/core/kconfig/uclibc-kconfigs/uclibc-mips.kconfig b/core/kconfig/uclibc-kconfigs/uclibc-mips.kconfig
new file mode 100644
index 0000000..50d72ba
--- /dev/null
+++ b/core/kconfig/uclibc-kconfigs/uclibc-mips.kconfig
@@ -0,0 +1,79 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config KEMBTK_UCLIBC_TARGET_ARCH
+ string
+ default "mips"
+
+config KEMBTK_UCLIBC_FORCE_OPTIONS_FOR_ARCH
+ bool
+ default y
+ select KEMBTK_UCLIBC_ARCH_ANY_ENDIAN
+
+#choice
+# prompt "Target ABI"
+# help
+# This is the ABI you wish to build use. Choose either O32, N32
+# or N64.
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_O32_ABI
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_N32_ABI
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_N64_ABI
+ bool
+ default n
+
+#endchoice
+
+#choice
+# prompt "Target Processor Architecture"
+# help
+# This selects the instruction set architecture of your MIPS CPU. This
+# information is used for optimizing purposes. To build a library that
+# will run on any MIPS CPU, you can specify "Generic (MIPS I)" here.
+# If you pick anything other than "Generic (MIPS I)," there is no
+# guarantee that uClibc will even run on anything other than the
+# selected processor type.
+#
+# You should probably select the MIPS ISA that best matches the
+# CPU you will be using on your device. uClibc will be tuned
+# for that architecture.
+#
+# If you don't know what to do, choose "Generic (MIPS I)"
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_1
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_2
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_3
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_4
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS32
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS32R2
+ bool
+ default n
+
+config KEMBTK_UCLIBC_CONFIG_MIPS_ISA_MIPS64
+ bool
+ default n
+
+#endchoice
diff --git a/core/kconfig/uclibc-kconfigs/uclibc.kconfig b/core/kconfig/uclibc-kconfigs/uclibc.kconfig
new file mode 100644
index 0000000..2d686fc
--- /dev/null
+++ b/core/kconfig/uclibc-kconfigs/uclibc.kconfig
@@ -0,0 +1,2214 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+
+config KEMBTK_UCLIBC_DESIRED_TARGET_ARCH
+ string
+ default ""
+
+config KEMBTK_UCLIBC_TARGET_alpha
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_arm
+ bool
+ default y if EMBTK_ARCH_ARM
+ default n
+
+config KEMBTK_UCLIBC_TARGET_avr32
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_bfin
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_cris
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_e1
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_frv
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_h8300
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_hppa
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_i386
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_i960
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_ia64
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_m68k
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_microblaze
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_mips
+ bool
+ default y if EMBTK_ARCH_MIPS
+ default n
+
+config KEMBTK_UCLIBC_TARGET_nios
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_nios2
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_powerpc
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_sh
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_sh64
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_sparc
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_v850
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_vax
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_x86_64
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_xtensa
+ bool
+ default n
+
+config KEMBTK_UCLIBC_TARGET_c6x
+ bool
+ default n
+
+comment "----------------"
+comment "Target Architecture Features and Options"
+comment "----------------"
+
+if KEMBTK_UCLIBC_TARGET_arm
+source core/kconfig/uclibc-kconfigs/uclibc-arm.kconfig
+endif
+
+if KEMBTK_UCLIBC_TARGET_mips
+source core/kconfig/uclibc-kconfigs/uclibc-mips.kconfig
+endif
+
+config KEMBTK_UCLIBC_TARGET_SUBARCH
+ string
+ default ""
+
+source core/kconfig/uclibc-kconfigs/uclibc-arch.kconfig
+
+
+comment "----------------"
+comment "General Library Settings"
+comment "----------------"
+
+config KEMBTK_UCLIBC_HAVE_NO_PIC
+ bool
+
+config KEMBTK_UCLIBC_DOPIC
+ bool "Generate only Position Independent Code (PIC)"
+ default y
+ depends on !KEMBTK_UCLIBC_HAVE_NO_PIC
+ help
+ If you wish to build all of uClibc as PIC objects, then answer Y here.
+ If you are unsure, then you should answer N.
+
+config KEMBTK_UCLIBC_ARCH_HAS_NO_SHARED
+ bool
+
+config KEMBTK_UCLIBC_ARCH_HAS_NO_LDSO
+ bool
+ select KEMBTK_UCLIBC_ARCH_HAS_NO_SHARED
+
+config KEMBTK_UCLIBC_HAVE_SHARED
+ bool "Enable shared libraries"
+ depends on !KEMBTK_UCLIBC_ARCH_HAS_NO_SHARED
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config KEMBTK_UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ select KEMBTK_UCLIBC_DOPIC
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any
+ non-writable segments. These libraries haven't set the DT_TEXTREL
+ tag in the dynamic section (==> objdump).
+ All your libraries must be compiled with -fPIC or -fpic, and all
+ assembler function must be written as position independent code (PIC).
+ Enabling this option will make uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by
+ badly coded shared libraries.
+
+config KEMBTK_UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native 'ldd' support"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y
+ help
+ Enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will make uClibc's
+ shared library loader a little bit smaller.
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_LDSO_CACHE_SUPPORT
+ bool "Enable library loader cache (ld.so.conf)"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y
+ help
+ Enable this to make use of /etc/ld.so.conf, the shared library loader
+ cache configuration file to support for non-standard library paths.
+ After updating this file, it is necessary to run 'ldconfig' to update
+ the /etc/ld.so.cache shared library loader cache file.
+
+config KEMBTK_UCLIBC_LDSO_PRELOAD_ENV_SUPPORT
+ bool "Enable library loader LD_PRELOAD environment"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y
+ help
+ Enable this to make use of LD_PRELOAD environment variable.
+ A whitespace-separated list of additional, user-specified, ELF shared
+ libraries to be loaded before all others. This can be used to
+ selectively override functions in other shared libraries. For
+ set-user-ID/set-group-ID ELF binaries, only libraries in the standard
+ search directories that are also set-user-ID will be loaded.
+
+config KEMBTK_UCLIBC_LDSO_PRELOAD_FILE_SUPPORT
+ bool "Enable library loader preload file (ld.so.preload)"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Enable this to make use of /etc/ld.so.preload. This file contains a
+ whitespace separated list of shared libraries to be loaded before
+ the program.
+
+config KEMBTK_UCLIBC_LDSO_BASE_FILENAME
+ string "Shared library loader naming prefix"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED && (KEMBTK_UCLIBC_LDSO_CACHE_SUPPORT || KEMBTK_UCLIBC_LDSO_PRELOAD_FILE_SUPPORT)
+ default "ld.so"
+ help
+ If you wish to support both uClibc and glibc on the same system, it
+ is necessary to set this to something other than "ld.so" to avoid
+ conflicts with glibc, which also uses "ld.so". This prevents both
+ libraries from using the same /etc/ld.so.* files. If you wish to
+ support both uClibc and glibc on the same system then you should set
+ this to "ld-uClibc.so".
+
+ Most people will leave this set to the default of "ld.so".
+
+ WARNING: Changing the default prefix could cause problems with
+ binutils' ld !
+
+config KEMBTK_UCLIBC_UCLIBC_STATIC_LDCONFIG
+ bool "Link ldconfig statically"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y
+ help
+ Enable this option to statically link the ldconfig binary.
+
+ Making ldconfig static can be beneficial if you have a library
+ problem and need to use ldconfig to recover. Sometimes it is
+ preferable to instead keep the size of the system down, in which
+ case you should disable this option.
+
+config KEMBTK_UCLIBC_LDSO_RUNPATH
+ bool "Enable ELF RUNPATH tag support"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y if KEMBTK_UCLIBC_LDSO_CACHE_SUPPORT
+ help
+ ELF's may have dynamic RPATH/RUNPATH tags. These tags list paths
+ which extend the library search paths. They are really only useful
+ if a package installs libraries in non standard locations and
+ ld.so.conf support is disabled.
+
+ Usage of RUNPATH tags is not too common, so disabling this feature
+ should be safe for most people.
+
+config KEMBTK_UCLIBC_LDSO_SEARCH_INTERP_PATH
+ bool "Add ldso path to lib search path"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y
+ help
+ The ldso is told where it is being executed from and can use that
+ path to find related core libraries. This is useful by default,
+ but can be annoying in a mixed development environment.
+
+ i.e. if the ldso is run from /foo/boo/ldso.so, it will start its
+ library search with /foo/boo/
+
+ If unsure, simply say Y here.
+
+config KEMBTK_UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config KEMBTK_UCLIBC_LDSO_GNU_HASH_SUPPORT
+ bool "Enable GNU hash style support"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Newest binutils support a new hash style named GNU-hash. The dynamic
+ linker will use the new GNU-hash section (.gnu.hash) for symbol lookup
+ if present into the ELF binaries, otherwise it will use the old SysV
+ hash style (.hash). This ensures that it is completely backward
+ compatible.
+ Further, being the hash table implementation self-contained into each
+ executable and shared libraries, objects with mixed hash style can
+ peacefully coexist in the same process.
+
+ If you want to use this new feature, answer Y
+
+choice
+ prompt "Thread support"
+ default KEMBTK_UCLIBC_LINUXTHREADS_NEW
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+config KEMBTK_UCLIBC_HAS_NO_THREADS
+ bool "none"
+ help
+ Disable thread support.
+
+config KEMBTK_UCLIBC_LINUXTHREADS_OLD
+ bool "older (stable) version of linuxthreads"
+ # linuxthreads and linuxthreads.old need nanosleep()
+ select KEMBTK_UCLIBC_UCLIBC_HAS_REALTIME
+ help
+ There are two versions of linuxthreads. The older (stable) version
+ has been in uClibc for quite a long time but hasn't seen too many
+ updates other than bugfixes.
+
+
+config KEMBTK_UCLIBC_LINUXTHREADS_NEW
+ bool "slightly newer version of linuxthreads"
+ help
+ The new version has not been tested much, and lacks ports for arches
+ which glibc does not support (like bfin/frv/etc...), but is based on
+ the latest code from glibc, so it may be the only choice for the
+ newer ports (like alpha/amd64/64bit arches and hppa).
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_THREADS_NATIVE
+ bool "Native POSIX Threading (NPTL)"
+ select KEMBTK_UCLIBC_UCLIBC_HAS_TLS
+ select KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_FUTEXES
+ # NPTL local:
+ select KEMBTK_UCLIBC_EXTRA_WARNINGS
+ # i386 has no lowlevellock support (yet) as opposed to i486 onward
+ depends on !KEMBTK_UCLIBC_CONFIG_386
+ help
+ If you want to compile uClibc with NPTL support, then answer Y.
+
+ IMPORTANT NOTE! NPTL requires a Linux 2.6 kernel, binutils
+ at least version 2.16 and GCC with at least version 4.1.0. NPTL
+ will not work with older versions of any above sources. If you
+ ignore any of these guidelines, you do so at your own risk. Do
+ not ask for help on any of the development mailing lists.
+
+ !!!! WARNING !!!! BIG FAT WARNING !!!! REALLY BIG FAT WARNING !!!!
+
+ This is experimental code and at times it may not even build and
+ even if it does it might decide to do random damage. This code is
+ potentially hazardous to your health and sanity. It will remain
+ that way until further notice at which point this notice will
+ disappear. Thank you for your support and for not smoking.
+
+endchoice
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_THREADS
+ def_bool y if !KEMBTK_UCLIBC_HAS_NO_THREADS
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_TLS
+ bool "Thread-Local Storage"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS_NATIVE
+ help
+ If you want to enable TLS support then answer Y.
+ This is fast an efficient way to store per-thread local data
+ which is not on stack. It needs __thread support enabled in
+ gcc.
+
+config KEMBTK_UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SYSLOG
+ bool "Syslog support"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_NETWORK_SUPPORT
+ select KEMBTK_UCLIBC_UCLIBC_HAS_SOCKET
+ help
+ Support sending messages to the system logger.
+ This requires socket-support.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older Linux kernel (2.0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+
+config KEMBTK_UCLIBC_MALLOC
+ bool "malloc"
+ help
+ "malloc" use mmap for all allocations and so works very well on
+ MMU-less systems that do not support the brk() system call. It is
+ pretty smart about reusing already allocated memory, and minimizing
+ memory wastage.
+ This is the default for uClinux MMU-less systems.
+
+config KEMBTK_UCLIBC_MALLOC_SIMPLE
+ bool "malloc-simple"
+ help
+ "malloc-simple" is trivially simple and slow as molasses. It
+ was written from scratch for uClibc, and is the simplest possible
+ (and therefore smallest) malloc implementation.
+
+ This uses only the mmap() system call to allocate and free memory,
+ and does not use the brk() system call at all, making it a fine
+ choice for MMU-less systems with very limited memory. It's 100%
+ standards compliant, thread safe, very small, and releases freed
+ memory back to the OS immediately rather than keeping it in the
+ process's heap for reallocation. It is also VERY SLOW.
+
+config KEMBTK_UCLIBC_MALLOC_STANDARD
+ bool "malloc-standard"
+ depends on KEMBTK_UCLIBC_ARCH_USE_MMU
+ help
+ "malloc-standard" is derived from the public domain dlmalloc
+ implementation by Doug Lea. It is quite fast, and is pretty smart
+ about reusing already allocated memory, and minimizing memory
+ wastage. This uses brk() for small allocations, while using mmap()
+ for larger allocations. This is the default malloc implementation
+ for uClibc.
+
+ If unsure, answer "malloc-standard".
+
+endchoice
+
+config KEMBTK_UCLIBC_MALLOC_GLIBC_COMPAT
+ bool
+ default y
+ help
+ The behavior of malloc(0) is listed as implementation-defined by
+ SuSv3. Glibc returns a valid pointer to something, while uClibc
+ normally returns NULL. I personally feel glibc's behavior is
+ not particularly safe, and allows buggy applications to hide very
+ serious problems.
+
+ When this option is enabled, uClibc will act just like glibc, and
+ return a live pointer when someone calls malloc(0). This pointer
+ provides a malloc'ed area with a size of 1 byte. This feature is
+ mostly useful when dealing with applications using autoconf's broken
+ AC_FUNC_MALLOC macro (which redefines malloc as rpl_malloc if it
+ does not detect glibc style returning-a-valid-pointer-for-malloc(0)
+ behavior). Most people can safely answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+config KEMBTK_UCLIBC_COMPAT_ATEXIT
+ bool "Old (visible) atexit Support"
+ help
+ Enable this option if you want to update from 0.9.28 to git/0.9.29,
+ else you will be missing atexit() until you rebuild all apps.
+
+config KEMBTK_UCLIBC_UCLIBC_SUSV3_LEGACY
+ bool "Enable SuSv3 LEGACY functions"
+ default y
+ #vfork,
+ # h_errno
+ # gethostbyaddr
+ # gethostbyname
+ help
+ Enable this option if you want to have SuSv3 LEGACY functions
+ in the library, else they are replaced by SuSv3 proposed macros.
+ Currently applies to:
+
+ bcmp, bcopy, bzero, index, rindex, ftime,
+ bsd_signal, (ecvt), (fcvt), gcvt, (getcontext),
+ (getwd), (makecontext),
+ mktemp, (pthread_attr_getstackaddr), (pthread_attr_setstackaddr),
+ scalb, (setcontext), (swapcontext), ualarm, usleep,
+ wcswcs.
+
+ WARNING! ABI incompatibility.
+
+config KEMBTK_UCLIBC_UCLIBC_SUSV3_LEGACY_MACROS
+ bool "Enable SuSv3 LEGACY macros"
+ default y
+ help
+ Enable this option if you want to have SuSv3 LEGACY macros.
+ Currently applies to bcopy/bzero/bcmp/index/rindex et al.
+ WARNING! ABI incompatibility.
+
+config KEMBTK_UCLIBC_UCLIBC_SUSV4_LEGACY
+ bool "Enable SuSv4 LEGACY or obsolescent functions"
+ default y
+ help
+ Enable this option if you want to have SuSv4 LEGACY functions
+ and macros in the library.
+ Currently applies to:
+
+ - XSI functions:
+ _longjmp, _setjmp, _tolower, _toupper, ftw, getitimer,
+ gettimeofday, isascii, pthread_getconcurrency,
+ pthread_setconcurrency, setitimer, setpgrp, sighold,
+ sigignore, sigpause, sigrelse, sigset, siginterrupt,
+ tempnam, toascii, ulimit.
+
+ - Base functions:
+ asctime, asctime_r, ctime, ctime_r, gets, rand_r,
+ tmpnam, utime.
+
+ WARNING! ABI incompatibility.
+
+config KEMBTK_UCLIBC_UCLIBC_STRICT_HEADERS
+ bool "Enable structures and constants for unsupported features"
+ help
+ Enable structures and constants in headers that should not be used,
+ because the respective feature is disabled.
+
+ WARNING! enabling this option requires to patch many faulty apps,
+ since they make (wrongly) use of these structures/constants,
+ although the feature was disabled.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STUBS
+ bool "Provide stubs for unavailable functionality"
+ help
+ With this option uClibc provides non-functional stubs for
+ functions which are impossible to implement on the target
+ architecture. Otherwise, such functions are simply omitted.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ bool "Support for program_invocation_name"
+ help
+ Support for the GNU-specific program_invocation_name and
+ program_invocation_short_name strings. Some GNU packages
+ (like tar and coreutils) utilize these for extra useful
+ output, but in general are not required.
+
+ At startup, these external strings are automatically set
+ up based on the value of ARGV[0].
+
+ If unsure, just answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS___PROGNAME
+ bool "Support for __progname"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_PROGRAM_INVOCATION_NAME
+ help
+ Some packages (like openssh) like to peek into internal libc
+ symbols to make their output a bit more user friendly.
+
+ At startup, __progname is automatically set up based on the
+ value of ARGV[0].
+
+ If unsure, just answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_PTY
+ bool "Support for pseudo-terminals"
+ default y
+ help
+ This enables support for pseudo-terminals (see man 4 pts
+ and man 7 pty).
+
+ If unsure, just answer Y.
+
+config KEMBTK_UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_PTY
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config KEMBTK_UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_PTY
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled and will thus use legacy BSD
+ style PTY handling which is more complex and also bigger than
+ Unix 98 PTY handling.
+
+ For most current programs, you can generally answer Y.
+
+if KEMBTK_UCLIBC_UNIX98PTY_ONLY
+config KEMBTK_UCLIBC_UCLIBC_HAS_GETPT
+ bool "Support getpt() (glibc-compat)"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_PTY
+ help
+ Some packages may need getpt().
+ All of those are non-standard and can be considered
+ GNU/libc compatibility.
+ Either use posix_openpt() or just open /dev/ptmx yourself.
+
+ If unsure, just say N.
+endif
+
+if !KEMBTK_UCLIBC_UNIX98PTY_ONLY
+# Have to use __libc_ptyname{1,2}[] and related bloat
+config KEMBTK_UCLIBC_UCLIBC_HAS_GETPT
+ def_bool y
+endif
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_LIBUTIL
+ bool "Provide libutil library and functions"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_PTY
+ help
+ Provide a libutil library.
+ This non-standard conforming library provides the following
+ utility functions:
+
+ forkpty(): combines openpty(), fork(2), and login_tty() to
+ create a new process operating in a pseudo-terminal.
+ login(): write utmp and wtmp entries
+ login_tty(): prepares for a login on the tty fd by creating a
+ new session, making fd the controlling terminal for
+ the calling process, setting fd to be the standard
+ input, output, and error streams of the current
+ process, and closing fd.
+ logout(): write utmp and wtmp entries
+ logwtmp(): constructs a utmp structure and calls updwtmp() to
+ append the structure to the utmp file.
+ openpty(): finds an available pseudo-terminal and returns
+ file descriptors for the master and slave
+
+ This library adds about 3k-4k to your system.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_TZ_CACHING
+ bool "Enable caching of the last valid timezone 'TZ' string"
+ default y
+ help
+ Answer Y to enable caching of the last valid 'TZ' string describing
+ the timezone setting. This allows a quick string compare to avoid
+ repeated parsing of unchanged 'TZ' strings when tzset() is called.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_TZ_FILE
+ bool "Enable '/etc/TZ' file support to set a default timezone (uClibc-specific)"
+ default y
+ help
+ Answer Y to enable the setting of a default timezone for uClibc.
+
+ Ordinarily, uClibc gets the timezone information exclusively from the
+ 'TZ' environment variable. In particular, there is no support for
+ the zoneinfo directory tree or the /etc/timezone file used by glibc.
+
+ With this option enabled, uClibc will use the value stored in the
+ file '/etc/TZ' (default path) to obtain timezone information if the
+ 'TZ' environment variable is missing or has an invalid value. The
+ file consists of a single line (newline required) of text describing
+ the timezone in the format specified for the TZ environment variable.
+
+ Doing 'echo CST6CDT > /etc/TZ' is enough to create a valid file.
+ See
+ http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html
+ for details on valid settings of 'TZ'.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_TZ_FILE_READ_MANY
+ bool "Repeatedly read the '/etc/TZ' file"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_TZ_FILE
+ default y
+ help
+ Answer Y to enable repeated reading of the '/etc/TZ' file even after
+ a valid value has been read. This incurs the overhead of an
+ open/read/close for each tzset() call (explicit or implied). However,
+ setting this will allow applications to update their timezone
+ information if the contents of the file change.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_TZ_FILE_PATH
+ string "Path to the 'TZ' file for setting the global timezone"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_TZ_FILE
+ default "/etc/TZ"
+ help
+ This is the path to the 'TZ' file.
+
+ Most people will use the default of '/etc/TZ'.
+
+config KEMBTK_UCLIBC_UCLIBC_FALLBACK_TO_ETC_LOCALTIME
+ bool "Use /etc/localtime as a fallback"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_TZ_FILE
+ default y
+ help
+ Answer Y to try to use /etc/localtime file.
+ On glibc systems this file (if it is in TZif2 format)
+ contains timezone string at the end.
+
+ Most people will answer Y.
+
+
+comment "----------------"
+comment "Advanced Library Settings"
+comment "----------------"
+
+config KEMBTK_UCLIBC_UCLIBC_PWD_BUFFER_SIZE
+ int "Buffer size for getpwnam() and friends"
+ default 256
+ range 12 1024
+ help
+ This sets the value of the buffer size for getpwnam() and friends.
+ By default, this is 256. (For reference, glibc uses 1024).
+ The value can be found using sysconf() with the _SC_GETPW_R_SIZE_MAX
+ parameter.
+
+config KEMBTK_UCLIBC_UCLIBC_GRP_BUFFER_SIZE
+ int "Buffer size for getgrnam() and friends"
+ default 256
+ range 12 1024
+ help
+ This sets the value of the buffer size for getgrnam() and friends.
+ By default, this is 256. (For reference, glibc uses 1024).
+ The value can be found using sysconf() with the _SC_GETGR_R_SIZE_MAX
+ parameter.
+
+comment "Support various families of functions"
+
+config KEMBTK_UCLIBC_UCLIBC_LINUX_MODULE_24
+ bool "Linux kernel module functions"
+ default !(KEMBTK_UCLIBC_TARGET_bfin)
+ help
+ create_module, query_module
+ are used in linux (prior to 2.6) for loadable kernel modules.
+
+ Say N if you do not use kernel modules, or you only support
+ Linux 2.6+.
+
+config KEMBTK_UCLIBC_UCLIBC_LINUX_SPECIFIC
+ bool "Linux specific functions"
+ default y
+ help
+ accept4(),
+ capget(), capset(), fstatfs(), inotify_*(), ioperm(), iopl(),
+ madvise(), modify_ldt(), pipe2(), personality(),
+ prctl()/arch_prctl(),
+ ppoll(), readahead(), reboot(), remap_file_pages(),
+ sched_getaffinity(), sched_setaffinity(), sendfile(),
+ setfsgid(), setfsuid(), setresuid(),
+ splice(), vmsplice(), tee(), signalfd(), swapoff(), swapon(),
+ sync_file_range(), sysctl(), sysinfo(), vhangup()
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GNU_ERROR
+ bool "Support GNU extensions for error-reporting"
+ default y
+ help
+ Support for the GNU-specific error(), error_at_line(),
+ void (* error_print_progname)(), error_message_count
+ functions and variables. Some GNU packages
+ utilize these for extra useful output, but in general
+ are not required.
+
+ If unsure, just answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_BSD_SPECIFIC
+ bool "BSD specific functions"
+ default y
+ help
+ mincore(), getdomainname(), setdomainname()
+
+ If unsure, say N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_BSD_ERR
+ bool "BSD err functions"
+ default y
+ help
+ These functions are non-standard BSD extensions.
+ err(), errx(), warn(), warnx(), verr(), verrx(), vwarn(), vwarnx()
+
+ If unsure, say N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_OBSOLETE_BSD_SIGNAL
+ bool "BSD obsolete signal functions"
+ help
+ These functions are provided as a compatibility interface for
+ programs that make use of the historical System V signal API.
+ This API is obsolete:
+ new applications should use the POSIX signal API (sigaction(2),
+ sigprocmask(2), etc.).
+ Affected functions:
+
+ sigset(), sighold(), sigrelse(), sigignore()
+
+ If unsure, say N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL
+ bool "SYSV obsolete signal functions"
+ help
+ Use of sysv_signal() should be avoided; use sigaction(2) instead.
+
+ If unsure, say N.
+
+config KEMBTK_UCLIBC_UCLIBC_NTP_LEGACY
+ bool "ntp_*() aliases"
+ help
+ Provide legacy aliases for ntp functions:
+ ntp_adjtime(), ntp_gettime()
+
+ It is safe to say N here.
+
+config KEMBTK_UCLIBC_UCLIBC_SV4_DEPRECATED
+ bool "Enable SVr4 deprecated functions"
+ help
+ These functions are DEPRECATED in System V release 4.
+ Say N unless you desparately need one of the functions below:
+
+ ustat() [use statfs(2) in your code instead]
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_REALTIME
+ bool "Realtime-related family of SUSv functions"
+ default y
+ help
+ These functions are part of the Timers option and need not
+ be available on all implementations.
+ Includes AIO, message-queue, scheduler, semaphore functions:
+
+ aio.h
+ mqueue.h
+ sched.h
+ semaphore.h
+
+ aio_cancel()
+ aio_error()
+ aio_fsync()
+ aio_read()
+ lio_listio()
+ aio_return()
+ aio_suspend()
+ aio_write()
+ clock_getres(), clock_gettime(), clock_settime()
+ fdatasync()
+ mlockall(), munlockall()
+ mlock(), munlock()
+ mq_close()
+ mq_getattr()
+ mq_notify()
+ mq_open()
+ mq_receive()
+ mq_send()
+ mq_setattr()
+ mq_unlink()
+ nanosleep()
+ sched_getparam()
+ sched_get_priority_max(), sched_get_priority_min()
+ sched_getscheduler()
+ sched_rr_get_interval()
+ sched_setparam()
+ sched_setscheduler()
+ sem_close()
+ sem_destroy()
+ sem_getvalue()
+ sem_init()
+ sem_open()
+ sem_post()
+ sem_trywait(), sem_wait()
+ sem_unlink()
+ sigqueue()
+ sigtimedwait(), sigwaitinfo()
+ timer_create()
+ timer_delete()
+ timer_getoverrun(), timer_gettime(), timer_settime()
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_ADVANCED_REALTIME
+ bool "Advanced realtime-related family of SUSv functions"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_REALTIME
+ help
+ These functions are part of the Timers option and need not
+ be available on all implementations.
+
+ clock_getcpuclockid()
+ clock_nanosleep()
+ mq_timedreceive()
+ mq_timedsend()
+ posix_fadvise()
+ posix_fallocate()
+ posix_madvise()
+ posix_memalign()
+ posix_mem_offset()
+ posix_spawnattr_destroy(), posix_spawnattr_init()
+ posix_spawnattr_getflags(), posix_spawnattr_setflags()
+ posix_spawnattr_getpgroup(), posix_spawnattr_setpgroup()
+ posix_spawnattr_getschedparam(), posix_spawnattr_setschedparam()
+ posix_spawnattr_getschedpolicy(), posix_spawnattr_setschedpolicy()
+ posix_spawnattr_getsigdefault(), posix_spawnattr_setsigdefault()
+ posix_spawnattr_getsigmask(), posix_spawnattr_setsigmask()
+ posix_spawn_file_actions_addclose()
+ posix_spawn_file_actions_adddup2()
+ posix_spawn_file_actions_addopen()
+ posix_spawn_file_actions_destroy()
+ posix_spawn_file_actions_init()
+ posix_spawn()
+ posix_spawnp()
+ posix_typed_mem_get_info()
+ pthread_mutex_timedlock()
+ sem_timedwait()
+
+#config UCLIBC_HAS_TERMIOS
+# bool "termios functions"
+# default y
+# help
+# Get and set terminal attributes, line control, get and set baud
+# rate.
+# termios(), tcgetattr(), tcsetattr(), tcsendbreak(), tcdrain(),
+# tcflush(), tcflow(), cfmakeraw(), cfgetospeed(), cfgetispeed(),
+# cfsetispeed(), cfsetospeed(), cfsetspeed()
+#
+# If unsure, say Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_EPOLL
+ bool "epoll"
+ default y
+ help
+ epoll_create(), epoll_ctl(), epoll_wait() functions.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_XATTR
+ bool "Extended Attributes"
+ default y
+ help
+ Extended Attributes support.
+
+ setxattr()
+ lsetxattr()
+ fsetxattr()
+ getxattr()
+ lgetxattr()
+ fgetxattr()
+ listxattr()
+ llistxattr()
+ flistxattr()
+ removexattr()
+ lremovexattr()
+ fremovexattr()
+
+ Say N unless you need support for extended attributes and the
+ filesystems do actually support them.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_PROFILING
+ bool "Profiling support"
+ default y
+ help
+ gcc's -finstrument-functions needs these.
+
+ Most people can safely answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CRYPT_IMPL
+ bool "libcrypt support"
+ default y
+ help
+ libcrypt contains crypt(), setkey() and encrypt()
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CRYPT_STUB
+ bool "libcrypt stubs"
+ default y
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_CRYPT_IMPL
+ help
+ Standards mandate that crypt(3) provides a stub if it is unavailable.
+ If you enable this option then stubs for
+ crypt(), setkey() and encrypt()
+ will be provided in a small libcrypt.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CRYPT
+ def_bool y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_CRYPT_IMPL || KEMBTK_UCLIBC_UCLIBC_HAS_CRYPT_STUB
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_NETWORK_SUPPORT
+ bool "Networking Support"
+ default y
+ help
+ Say N here if you do not need network support.
+
+if KEMBTK_UCLIBC_UCLIBC_HAS_NETWORK_SUPPORT
+config KEMBTK_UCLIBC_UCLIBC_HAS_SOCKET
+ bool "Socket support"
+ default y
+ help
+ If you want to include support for sockets then answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_IPV4
+ bool "IP version 4 support"
+ default y
+ select KEMBTK_UCLIBC_UCLIBC_HAS_SOCKET
+ help
+ If you want to include support for the Internet Protocol
+ (IP version 4) then answer Y.
+
+ Most people will say Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 support"
+ default y
+ select KEMBTK_UCLIBC_UCLIBC_HAS_SOCKET
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default y
+ # RPC+socket-ipvX doesn't currently work.
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_IPV4 || KEMBTK_UCLIBC_UCLIBC_HAS_IPV6
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use
+ NFS, you can probably leave this set to N and save some space.
+
+ If you need to use NFS then you should answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_RPC
+ default y if !KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_REENTRANT_RPC
+ bool "Reentrant RPC support"
+ default y
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_RPC
+ default y if !KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Most packages utilize the normal (non-reentrant) RPC functions, but
+ some (like exportfs from nfs-utils) need these reentrant versions.
+
+ Most people can safely answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_USE_NETLINK
+ bool "Use netlink to query interfaces"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_SOCKET
+ help
+ In newer versions of Linux (2.4.17+), support was added for querying
+ network device information via netlink rather than the old style
+ ioctl's. Most of the time, the older ioctl style is sufficient (and
+ it is smaller than netlink), but if you find that not all of your
+ devices are being returned by the if_nameindex() function, you will
+ have to use the netlink implementation.
+
+ Most people can safely answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_SUPPORT_AI_ADDRCONFIG
+ bool "Support the AI_ADDRCONFIG flag"
+ depends on KEMBTK_UCLIBC_UCLIBC_USE_NETLINK
+ help
+ The implementation of AI_ADDRCONFIG is aligned with the glibc
+ implementation using netlink to query interfaces to find both
+ ipv4 and ipv6 support. This is only needed if an application uses
+ the AI_ADDRCONFIG flag.
+
+ Most people can safely answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_BSD_RES_CLOSE
+ bool "Support res_close() (bsd-compat)"
+ help
+ Answer Y if you desperately want to support BSD compatibility in
+ the network code.
+
+ Most people will say N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_COMPAT_RES_STATE
+ bool "Use compatible but bloated _res"
+ default y
+ help
+ Answer Y if you build network utilities and they muck with resolver
+ internals a lot (_res global structure). uclibc does not use most
+ of _res.XXX fields, and with this option OFF they won't even exist.
+ Which will make e.g. dig build fail.
+ Answering N saves around 400 bytes in bss.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
+ bool "Use extra compatible but extra bloated _res"
+ help
+ Answer Y if selecting KEMBTK_UCLIBC_UCLIBC_HAS_COMPAT_RES_STATE is not enough.
+ As far as I can say, this should never be needed.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_LIBRESOLV_STUB
+ bool "Provide libresolv stub"
+ help
+ Provide a dummy resolv library.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_LIBNSL_STUB
+ bool "Provide libnsl stub"
+ help
+ Provide a dummy nsl library.
+
+endif
+
+
+comment "----------------"
+comment "String and Stdio Support"
+comment "----------------"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STRING_GENERIC_OPT
+ bool "Use faster (but larger) generic string functions"
+ default y
+ help
+ Answer Y to use the (tweaked) glibc generic string functions.
+
+ In general, they are faster (but 3-5K larger) than the base
+ uClibc string functions which are optimized solely for size.
+
+ Many people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STRING_ARCH_OPT
+ bool "Use arch-specific assembly string functions (where available)"
+ default y
+ help
+ Answer Y to use any archtecture-specific assembly language string
+ functions available for this target plaform.
+
+ Note that assembly implementations are not available for all string
+ functions, so some generic (written in C) string functions may
+ still be used.
+
+ These are small and fast, the only reason _not_ to say Y here is
+ for debugging purposes.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_TABLES
+ bool "Use Table Versions Of 'ctype.h' Functions."
+ default y
+ help
+ Answer Y to use table versions of the 'ctype.h' functions.
+ While the non-table versions are often smaller when building
+ statically linked apps, they work only in stub locale mode.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_SIGNED
+ bool "Support Signed Characters In 'ctype.h' Functions."
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_TABLES
+ default y
+ help
+ Answer Y to enable support for passing signed char values to
+ the 'ctype.h' functions. ANSI/ISO C99 and SUSv3 specify that
+ these functions are only defined for unsigned char values and
+ EOF. However, glibc allows negative signed char values as well
+ in order to support 'broken old programs'.
+
+ Most people will answer Y.
+
+choice
+ prompt "ctype argument checking"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_TABLES
+ help
+ Please select the invalid arg behavior you want for the 'ctype'
+ functions.
+
+ The 'ctype' functions are now implemented using table lookups, with
+ the arg being the index. This can result in incorrect memory accesses
+ or even segfaults for args outside of the allowed range.
+
+ NOTE: This only affects the 'ctype' _functions_. It does not affect
+ the macro implementations.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_UNSAFE
+ bool "Do not check -- unsafe"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_CHECKED
+ bool "Detect and handle appropriately"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_ENFORCED
+ bool "Issue a diagnostic and abort()"
+
+endchoice
+
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger. It is also currently required for locale support.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support"
+ select KEMBTK_UCLIBC_UCLIBC_HAS_WCHAR
+ select KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_TABLES
+ help
+ uClibc now has full ANSI/ISO C99 locale support (except for
+ wcsftime() and collating items in regex). Be aware that enabling
+ this option will make uClibc much larger.
+
+ Enabling KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE with the default set of supported locales
+ (169 UTF-8 locales, and 144 locales for other codesets) will enlarge
+ uClibc by around 300k. You can reduce this size by building your own
+ custom set of locate data (see extra/locale/LOCALES for details).
+
+ uClibc's locale support is still under development. For example,
+ codesets using shift states are not currently supported. Support is
+ planned in the next iteration of locale support.
+
+ Answer Y to enable locale support. Most people will answer N.
+
+choice
+
+prompt "Locale data"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_ALL_LOCALE
+ bool "All locales"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+ help
+ This builds all the locales that are available on your
+ host-box.
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_MINIMAL_LOCALE
+ bool "Only selected locales"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+ help
+ If you do not need all locales that are available on your
+ host-box, then set this to 'Y'.
+
+config KEMBTK_UCLIBC_UCLIBC_PREGENERATED_LOCALE_DATA
+ bool "Use Pre-generated Locale Data"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+ help
+ Use pre-built locale data.
+
+ Note that these pregenerated locales are sensitive to your
+ target architecture (endianess, bitcount).
+
+ Saying N here is highly recommended.
+
+endchoice
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_MINIMAL_LOCALES
+ string "locales to use"
+ depends on KEMBTK_UCLIBC_UCLIBC_BUILD_MINIMAL_LOCALE
+ default "en_US"
+ help
+ Space separated list of locales to use.
+
+ E.g.:
+ en_US en_GB de_AT
+ default:
+ en_US
+
+config KEMBTK_UCLIBC_UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA
+ bool "Automagically Download the Pre-generated Locale Data (if necessary)"
+ depends on KEMBTK_UCLIBC_UCLIBC_PREGENERATED_LOCALE_DATA
+ help
+ If you would like the build process to use 'wget' to automatically
+ download the pregenerated locale data, enable this option. Otherwise
+ you will need to obtain the locale data yourself from:
+ http://www.uclibc.org/downloads/uClibc-locale-*.tgz
+ and place the uClibc-locale-*.tgz tarball in the extra/locale/
+ directory.
+
+ Note that the use of pregenerated locale data is discouraged.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_XLOCALE
+ bool "Extended Locale Support (experimental/incomplete)"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+ help
+ Answer Y to enable extended locale support similar to that provided
+ by glibc. This is primarily intended to support libstd++
+ functionality.
+ However, it also allows thread-specific locale selection via
+ uselocale().
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_HEXADECIMAL_FLOATS
+ bool "Support hexadecimal float notation"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_TABLES
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
+ help
+ Answer Y to enable support for hexadecimal float notation in the
+ (wchar and) char string to floating point conversion functions, as
+ well as support for the %a and %A conversion specifiers in the
+ *printf() and *scanf() functions.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GLIBC_DIGIT_GROUPING
+ bool "Support glibc's \"'\" flag for allowing locale-specific digit grouping"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
+ help
+ Answer Y to enable support for glibc's \"'\" flag for allowing
+ locale-specific digit grouping in base 10 integer conversions and
+ appropriate floating point conversions in the *printf() and *scanf()
+ functions.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING
+ bool "Do not require digit grouping when the \"'\" flag is specified"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_GLIBC_DIGIT_GROUPING
+ default y
+ help
+ Answer Y to make digit grouping optional when the \"'\" flag is
+ specified.
+ This is the standard glibc behavior. If the initial string of digits
+ exceeds the maximum group number, the input will be treated as a
+ normal non-grouped number.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
+ bool "Support glibc's register_printf_function() (glibc-compat)"
+ depends on !KEMBTK_UCLIBC_USE_OLD_VFPRINTF
+ help
+ Answer Y to support glibc's register_printf_function() to allow an
+ application to add its own printf conversion specifiers.
+ parse_printf_format() is also enabled.
+
+ NOTE: Limits the number or registered specifiers to 10.
+ NOTE: Requires new conversion specifiers to be ASCII
+ characters (0-0x7f). This is to avoid problems with processing
+ format strings in locales with different multibyte conversions.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_WCHAR
+ help
+ Set to true to use the old vfprintf instead of the new. This is
+ roughly C89 compliant with some extensions, and is much smaller.
+ However, it does not support wide chars, positional args, or glibc
+ custom printf specifiers.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS
+ int "Maximum number of positional args. Either 0 or >= 9."
+ depends on !KEMBTK_UCLIBC_USE_OLD_VFPRINTF
+ default 9
+ help
+ Set the maximum number of positional args supported by the
+ printf/scanf functions. The Single Unix Specification Version 3
+ requires a minimum value of 9. Setting this to a value lower than
+ 9 will disable positional arg support and cause the NL_ARGMAX macro
+ in limits.h to be #undef'd.
+
+ WARNING! The workspace to support positional args is currently
+ allocated on the stack. You probably don't want to set
+ this to too high a value.
+
+ Most people will answer 9.
+
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SCANF_GLIBC_A_FLAG
+ bool "Support glibc's 'a' flag for scanf string conversions (not implemented)"
+ help
+ NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!!
+ NOTE!!! Conflicts with an ANSI/ISO C99 scanf flag!! NOTE!!!
+
+ Answer Y to enable support for glibc's 'a' flag for the scanf string
+ conversions '%s', '%[', '%ls', '%l[', and '%S'. This is used to
+ auto-allocate sufficient memory to hold the data retrieved.
+
+ Most people will answer N.
+
+choice
+ prompt "Stdio buffer size"
+ help
+ Please select a value for BUFSIZ. This will be used by the
+ stdio subsystem as the default buffer size for a file, and
+ affects fopen(), setvbuf(), etc.
+
+ NOTE: Setting this to 'none' will disable buffering completely.
+ However, BUFSIZ will still be defined in stdio.h as 256 because
+ many applications use this value.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_256
+ bool "256 (minimum ANSI/ISO C99 value)"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_512
+ bool "512"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_1024
+ bool "1024"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_2048
+ bool "2048"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_4096
+ bool "4096"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_8192
+ bool "8192"
+
+# If you add more choices, you will need to update uClibc_stdio.h.
+
+endchoice
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_NONE
+ bool
+ default n
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_WCHAR
+
+choice
+ prompt "Stdio builtin buffer size (uClibc-specific)"
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_NONE
+ help
+ When a FILE is created with fopen(), an attempt is made to allocate
+ a BUFSIZ buffer for it. If the allocation fails, fopen() will still
+ succeed but the FILE will be unbuffered.
+
+ This option adds a small amount of space to each FILE to act as an
+ emergency buffer in the event of a buffer allocation failure.
+
+ Most people will answer None.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE
+ bool "None"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4
+ bool "4"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8
+ bool "8"
+
+# If you add more choices, you will need to update uClibc_stdio.h.
+
+endchoice
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT
+ bool "Attempt to shutdown stdio subsystem when abort() is called."
+ help
+ ANSI/ISO C99 requires abort() to be asyn-signal-safe. So there was
+ a behavioral change made in SUSv3. Previously, abort() was required
+ to have the affect of fclose() on all open streams. The wording has
+ been changed to "may" from "shall".
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_GETC_MACRO
+ bool "Provide a macro version of getc()"
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_NONE
+ default y
+ help
+ Provide a macro version of getc().
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_PUTC_MACRO
+ bool "Provide a macro version of putc()"
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_NONE
+ default y
+ help
+ Provide a macro version of putc().
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION
+ bool "Support auto-r/w transition"
+ default y
+ help
+ Answer Y to enable the stdio subsystem to automaticly transition
+ between reading and writing. This relaxes the ANSI/ISO C99
+ requirement:
+
+ When a file is opened with update mode ('+' as the second or third
+ character in the list of mode argument values), both input and output
+ may be performed on the associated stream. However, output shall not
+ be directly followed by input without an intervening call to the
+ fflush function or to a file positioning function (fseek, fsetpos,
+ or rewind), and input shall not be directly followed by output without
+ an intervening call to a file positioning function, unless the input
+ operation encounters end­of­file.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FOPEN_LARGEFILE_MODE
+ bool "Support an fopen() 'F' flag for large file mode (uClibc-specific)"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LFS
+ help
+ Answer Y to enable a uClibc-specific extension to allow passing an
+ additional 'F' flag in the mode string for fopen() to specify that
+ the file should be open()ed with the O_LARGEFILE flag set.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
+ bool "Support an fopen() 'x' flag for exclusive mode (glibc-compat)"
+ help
+ Answer Y to support a glibc extension to allow passing
+ additional 'x' flag in the mode string for fopen() to specify that
+ the file should be open()ed with the O_EXCL flag set.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
+ bool "Support fmemopen(), open_memstream(), and fopencookie() (glibc-compat)"
+ help
+ Answer Y to support the glibc 'custom stream' extension functions
+ fmemopen(), open_memstream(), and fopencookie().
+
+ NOTE: There are some minor differences regarding seeking behavior.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_PRINTF_M_SPEC
+ bool "Support the '%m' specifier in printf format strings (glibc-compat)"
+ help
+ Answer Y to support a glibc extension to interpret '%m' in printf
+ format strings as an instruction to output the error message string
+ (as generated by strerror) corresponding to the current value of
+ 'errno'.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_ERRNO_MESSAGES
+ bool "Include the errno message text in the library"
+ default y
+ help
+ Answer Y if you want to include the errno message text in the
+ library. This adds about 3K to the library, but enables strerror()
+ to generate text other than 'Unknown error <number>'.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SYS_ERRLIST
+ bool "Support sys_errlist[] (obsolete-compat)"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_ERRNO_MESSAGES
+ help
+ Answer Y if you want to support the obsolete sys_errlist[].
+ This adds about 0.5k to the library, except for the mips
+ arch where it adds over 4K.
+
+ WARNING! In the future, support for sys_errlist[] may be unavailable
+ in at least some configurations. In fact, it may be removed
+ altogether.
+
+ Most people will answer N.
+
+ Application writers: use the strerror(3) function.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SIGNUM_MESSAGES
+ bool "Include the signum message text in the library"
+ default y
+ help
+ Answer Y if you want to include the signum message text in the
+ library. This adds about 0.5K to the library, but enables strsignal()
+ to generate text other than 'Unknown signal <number>'.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SYS_SIGLIST
+ bool "Support sys_siglist[] (bsd-compat)"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_SIGNUM_MESSAGES
+ help
+ Answer Y if you want to support sys_siglist[].
+
+ WARNING! In the future, support for sys_siglist[] may be unavailable
+ in at least some configurations. In fact, it may be removed
+ altogether.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GETTEXT_AWARENESS
+ bool "Include gettext awareness"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE && KEMBTK_UCLIBC_UCLIBC_MJN3_ONLY
+ help
+ NOTE!!! Not yet integrated with strerror and strsignal. NOTE!!!
+
+ Answer Y if you want to include weak stub gettext support and
+ make the *strerror*() and strsignal() functions gettext-aware.
+
+ Currently, to get functional gettext functionality you will need
+ to use gnu gettext.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GNU_GETOPT
+ bool "Support gnu getopt"
+ default y
+ help
+ Answer Y if you want to include full gnu getopt() instead of a
+ (much smaller) SUSv3 compatible getopt().
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_FUTEXES
+ bool "Use futexes for multithreaded I/O locking"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS_NATIVE
+ help
+ If you want to compile uClibc to use futexes for low-level
+ I/O locking, answer Y. Otherwise, answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GETOPT_LONG
+ bool "Support getopt_long/getopt_long_only"
+ depends on !KEMBTK_UCLIBC_UCLIBC_HAS_GNU_GETOPT
+ default y
+ help
+ Answer Y if you want to include getopt_long[_only() used by many
+ apps, even busybox.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GNU_GETSUBOPT
+ bool "Support glibc getsubopt"
+ default y
+ help
+ Answer Y if you want to include glibc getsubopt() instead of a
+ smaller SUSv3 compatible getsubopt().
+
+ Most people will answer Y.
+
+
+comment "----------------"
+comment "Big and Tall"
+comment "----------------"
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 53k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only statically link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_REGEX_OLD
+ bool "Use the older (stable) regular expression code"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_REGEX
+ default y
+ help
+ There are two versions of regex. The older (stable) version has
+ been in uClibc for quite a long time but hasn't seen too many
+ updates. It also has some known issues when dealing with uncommon
+ corner cases and multibyte/unicode strings. However, it is quite
+ a bit smaller than the newer version.
+
+ If the older version has worked for you and you don't need unicode
+ support, then stick with the old version (and say Y here).
+ Otherwise, you should use the new version (and say N here).
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FNMATCH
+ bool "fnmatch Support"
+ default y
+ help
+ POSIX fnmatch.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FNMATCH_OLD
+ bool "Use the older (stable) fnmatch code"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FNMATCH
+ default y
+ help
+ There are two versions of fnmatch. The older (stable) version has
+ been in uClibc for quite a long time but hasn't seen too many
+ updates. It also has some known issues when dealing with uncommon
+ corner cases and multibyte/unicode strings. However, it is quite
+ a bit smaller than the newer version.
+
+ If the older version has worked for you and you don't need unicode
+ support, then stick with the old version (and say Y here).
+ Otherwise, you should use the new version (and say N here).
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_WORDEXP
+ bool "Support the wordexp() interface"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_GLOB
+ help
+ The SuSv3 wordexp() interface performs word expansions per the Shell
+ and Utilities volume of IEEE Std 1003.1-2001, Section 2.6. It is
+ intended for use by applications that want to implement all of the
+ standard Bourne shell expansions on input data.
+
+ This interface is rarely used, and very large. Unless you have a
+ pressing need for wordexp(), you should probably answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_NFTW
+ bool "Support the nftw() interface"
+ help
+ The SuSv3 nftw() interface is used to recursively descend
+ directory paths while repeatedly calling a function.
+
+ This interface is rarely used, and adds around 4.5k. Unless you have
+ a pressing need for nftw(), you should probably answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FTW
+ bool "Support the ftw() interface"
+ depends on KEMBTK_UCLIBC_UCLIBC_SUSV4_LEGACY
+ help
+ The SuSv3 ftw() interface is used to recursively descend
+ directory paths while repeatedly calling a function.
+
+ This interface is rarely used, and adds around 4.5k. Unless you have
+ a pressing need for ftw(), you should probably answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_FTS
+ bool "Support the fts() interface (bsd-compat)"
+ help
+ The fts functions are provided for traversing UNIX file hierarchies.
+
+ This interface is currently used by the elfutils and adds
+ around 7.5k.
+ You should port your application to use the POSIX nftw()
+ interface.
+
+ Unless you need to build/use elfutils, you should prolly answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GLOB
+ bool "Support the glob() interface"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_FNMATCH
+ default y
+ help
+
+ The glob interface is somewhat large (weighing in at about 2,5k). It
+ is used fairly often, but is an option since people wanting to go for
+ absolute minimum size may wish to omit it.
+
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_GNU_GLOB
+ bool "Support gnu glob() interface"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_GLOB
+ help
+ The gnu glob interface is somewhat larger (weighing in at about 4,2k)
+ than it's SuSv3 counterpart (and is out of date). It is an old copy
+ from glibc and does not support all the GNU specific options.
+
+ Answer Y if you want to include full gnu glob() instead of the smaller
+ SUSv3 compatible glob().
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_UTMPX
+ bool "utmpx based support for tracking login/logouts to/from the system"
+ help
+ Answer y to enable support for accessing user accounting database.
+ It can be used to track all login/logout to the system.
+
+ If unsure, just answer N.
+
+
+
+
+
+#comment "----------------"
+#comment "Library Installation Options"
+#comment "----------------"
+
+config KEMBTK_UCLIBC_RUNTIME_PREFIX
+ string
+ default "/usr/$(KEMBTK_UCLIBC_TARGET_ARCH)-linux-uclibc/"
+ help
+ KEMBTK_UCLIBC_RUNTIME_PREFIX is the directory into which the uClibc runtime
+ libraries will be installed. The result will look something
+ like the following:
+ $(KEMBTK_UCLIBC_RUNTIME_PREFIX)/
+ lib/ <contains all runtime libraries>
+ usr/bin/ldd <the ldd utility program>
+ sbin/ldconfig <the ldconfig utility program>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the shared library loader, you will need to
+ recompile uClibc if you change this value...
+
+ For a typical target system this should be set to "/", such that
+ 'make install' will install /lib/libuClibc-<VERSION>.so
+
+config KEMBTK_UCLIBC_DEVEL_PREFIX
+ string
+ default "/usr/$(KEMBTK_UCLIBC_TARGET_ARCH)-linux-uclibc/usr/"
+ help
+ KEMBTK_UCLIBC_DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(KEMBTK_UCLIBC_DEVEL_PREFIX)/
+ lib/ <contains static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target when
+ installing a uClibc development environment.
+
+ For a typical target system this should be set to "/usr", such that
+ 'make install' will install /usr/include/<header files>.
+
+config KEMBTK_UCLIBC_MULTILIB_DIR
+ string
+ default "lib"
+ help
+ Path component where libraries reside.
+
+ For a typical target system this should be set to "lib", such that
+ 'make install' will install libraries to "/lib" and "/usr/lib"
+ respectively
+ KEMBTK_UCLIBC_DEVEL_PREFIX/MULTILIB_DIR
+ KEMBTK_UCLIBC_RUNTIME_PREFIX/MULTILIB_DIR
+
+ Other settings may include "lib32" or "lib64".
+
+config KEMBTK_UCLIBC_HARDWIRED_ABSPATH
+ bool
+ default y
+ help
+ This prepends absolute paths to the libraries mentioned in linker
+ scripts such as libc.so.
+
+ This is a build time optimization. It has no impact on dynamic
+ linking at runtime, which doesn't use linker scripts.
+
+ You must disable this to use uClibc with old non-sysroot toolchains,
+ such as the prebuilt binary cross compilers at:
+ http://uclibc.org/downloads/binaries
+
+ The amount of time saved by this optimization is actually too small to
+ measure. The linker just had to search the library path to find the
+ linker script, so the dentries are cache hot if it has to search the
+ same path again. But it's what glibc does, so we do it too.
+
+
+
+comment "----------------"
+comment "Security options"
+comment "----------------"
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_PIE
+ bool "Build utilities as ET_DYN/PIE executables"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ depends on KEMBTK_UCLIBC_TARGET_arm || KEMBTK_UCLIBC_TARGET_frv || KEMBTK_UCLIBC_TARGET_i386 || KEMBTK_UCLIBC_TARGET_mips || KEMBTK_UCLIBC_TARGET_powerpc
+ select KEMBTK_UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ help
+ If you answer Y here, ldd and iconv are built as ET_DYN/PIE
+ executables.
+
+ It requires gcc-3.4 and binutils-2.15 (for arm 2.16) or later.
+ More about ET_DYN/PIE binaries on <http://pax.grsecurity.net/> .
+
+ WARNING: This option also enables KEMBTK_UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS, so
+ all libraries have to be built with -fPIC or -fpic, and all
+ assembler functions must be written as position independent
+ code (PIC).
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_ARC4RANDOM
+ bool "Include the arc4random() function"
+ help
+ Answer Y to support the OpenBSD-like arc4random() function. This
+ function picks a random number between 0 and N, and will always return
+ something even if the random driver is dead. If urandom fails then
+ gettimeofday(2) will be used as the random seed. This function is
+ designed to be more dependable than invoking /dev/urandom directly.
+ OpenSSL and OpenNTPD currently support this function.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_HAVE_NO_SSP
+ bool
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SSP
+ bool "Support for GCC stack smashing protector"
+ depends on !KEMBTK_UCLIBC_HAVE_NO_SSP
+ help
+ Add code to support GCC's -fstack-protector[-all] option to uClibc.
+ This requires GCC 4.1 or newer. GCC does not have to provide libssp,
+ the needed functions are added to ldso/libc instead.
+
+ GCC's stack protector is a reimplementation of IBM's propolice.
+ See http://www.trl.ibm.com/projects/security/ssp/ and
+ http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
+ for details.
+
+ Note that NOEXECSTACK on a kernel with address space randomization
+ is generally sufficient to prevent most buffer overflow exploits
+ without increasing code size. This option essentially adds debugging
+ code to catch them.
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_SSP_COMPAT
+ bool "Support for gcc-3.x propolice smashing stack protector"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_SSP
+ help
+ Add gcc-3.x propolice smashing stack protector to the library.
+
+ This requires a patched version of GCC, supporting the
+ -fstack-protector[-all] options, with the __guard and
+ __stack_smash_handler functions removed from libgcc.
+ These functions are added to ldso/libc instead.
+
+ More information at:
+ <http://www.research.ibm.com/trl/projects/security/ssp/>
+
+ Most people will answer N.
+
+config KEMBTK_UCLIBC_SSP_QUICK_CANARY
+ bool "Use simple guard values without accessing /dev/urandom"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_SSP
+ help
+ Use gettimeofday(2) to define the __guard without accessing
+ /dev/urandom.
+ WARNING: This makes smashing stack protector vulnerable to timing
+ attacks.
+ Most people will answer N.
+
+choice
+ prompt "Propolice protection blocking signal"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_SSP
+ help
+ "abort" use SIGABRT to block offending programs.
+ This is the default implementation.
+
+ "segfault" use SIGSEGV to block offending programs.
+ Use this for debugging.
+
+ If unsure, answer "abort".
+
+config KEMBTK_UCLIBC_PROPOLICE_BLOCK_ABRT
+ bool "abort"
+
+config KEMBTK_UCLIBC_PROPOLICE_BLOCK_SEGV
+ bool "segfault"
+
+endchoice
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_SSP
+ bool "Build uClibc with -fstack-protector"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_SSP
+ help
+ Build all uClibc libraries and executables with -fstack-protector,
+ adding extra stack overflow checking to most uClibc functions.
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_RELRO
+ bool "Build uClibc with linker option -z RELRO"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ default y
+ help
+ Build all libraries and executables with "ld -z relro".
+
+ This tells the linker to mark chunks of an executable or shared
+ library read-only after applying dynamic relocations. (This comes
+ up when a global const variable is initialized to the address of a
+ function or the value of another global variable.)
+
+ This is a fairly obscure option the ld man page doesn't even bother
+ to document properly. It's a security paranoia issue that's more
+ likely to consume memory (by allocating an extra page) rather than
+ save it.
+
+ This is explained in more depth at
+ http://www.airs.com/blog/archives/189
+
+ Nobody is likely to care whether you say Y or N here.
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_NOW
+ bool "Build uClibc with linker option -z NOW"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Build all libraries and executables with "ld -z now".
+
+ This tells the linker to resolve all symbols when the library is
+ first loaded, rather than when each function is first called. This
+ increases start-up latency by a few microseconds and may do
+ unnecessary work (resolving symbols that are never used), but the
+ realtime people like it for making microbenchmark timings slightly
+ more predictable and in some cases it can be slightly faster due to
+ CPU cache behavior (not having to fault the linker back in to do
+ lazy symbol resolution).
+
+ Most people can't tell the difference between selecting Y or N here.
+
+config KEMBTK_UCLIBC_UCLIBC_BUILD_NOEXECSTACK
+ bool "Build uClibc with noexecstack marking"
+ default y
+ help
+ Mark all assembler files as noexecstack, which will mark uClibc
+ as not requiring an executable stack. (This doesn't prevent other
+ files you link against from claiming to need an executable stack, it
+ just won't cause uClibc to request it unnecessarily.)
+
+ This is a security thing to make buffer overflows harder to exploit.
+ By itself, it's kind of useless, as Linus Torvalds explained in 1998:
+ http://old.lwn.net/1998/0806/a/linus-noexec.html
+
+ It only actually provides any security when combined with address
+ space randomization, explained here: http://lwn.net/Articles/121845/
+
+ Address space randomization is on by default in current linux
+ kernels (although it can be disabled using the option
+ CONFIG_COMPAT_BRK).
+
+ You should probably say Y.
+
+
+comment "----------------"
+comment "uClibc development/debugging options"
+comment "----------------"
+
+config KEMBTK_UCLIBC_CROSS_COMPILER_PREFIX
+ string
+ default ""
+ help
+ The prefix used to execute your cross-compiling toolchain. For
+ example, if you run 'arm-linux-uclibc-gcc' to compile something,
+ then enter 'arm-linux-uclibc-' here.
+
+config KEMBTK_UCLIBC_UCLIBC_EXTRA_CFLAGS
+ string
+ default ""
+ help
+ Add any additional CFLAGS to be used to build uClibc.
+
+config KEMBTK_UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ select KEMBTK_UCLIBC_EXTRA_WARNINGS
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config KEMBTK_UCLIBC_DODEBUG_PT
+ bool "Build pthread with debugging output"
+ depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS && KEMBTK_UCLIBC_LINUXTHREADS_OLD
+ help
+ Enable debug output in libpthread. This is only useful when doing
+ development in libpthread itself.
+
+ Otherwise, answer N.
+
+config KEMBTK_UCLIBC_DOSTRIP
+ bool
+ default n
+ depends on !KEMBTK_UCLIBC_DODEBUG
+ help
+ Say Y here if you do wish to strip all uClibc libraries and
+ executables. No stripping increases the size of the binaries
+ considerably, but makes it possible to debug uClibc libraries.
+ Most people will answer Y.
+
+config KEMBTK_UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config KEMBTK_UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the
+ relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls);
+ detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config KEMBTK_UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config KEMBTK_UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends on KEMBTK_UCLIBC_MALLOC || KEMBTK_UCLIBC_MALLOC_STANDARD
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using the
+ KEMBTK_UCLIBC_MALLOC_DEBUG environment variable.
+
+ The value of KEMBTK_UCLIBC_MALLOC_DEBUG should be an integer, which is interpreted
+ as a bitmask with the following bits:
+ 1 - do extra consistency checking
+ 2 - output messages for malloc/free calls and OS
+ allocation calls
+ 4 - output messages for the `MMB' layer
+ 8 - output messages for internal malloc heap manipulation
+ calls
+
+ Because this increases the size of malloc appreciably (due to strings
+ etc), you should say N unless you need to debug a malloc problem.
+
+config KEMBTK_UCLIBC_UCLIBC_HAS_BACKTRACE
+ bool "Add support for application self-debugging"
+ depends on KEMBTK_UCLIBC_HAVE_SHARED
+ help
+ Answer Y here to compile support for application self-debugging, by adding
+ a new shared object "libubacktrace.so" that provides the following new
+ functions:
+ backtrace, backtrace_symbols, backtrace_symbols_fd
+
+ The backtrace functionality is currently supported on SH platform, and it
+ based on dwarf2 informations to properly work, so any application that
+ want to use backtrace needs to be built with -fexceptions flag.
+
+ The symbol names may be unavailable without the use of special linker
+ options. For systems using the GNU linker, it is necessary to use the
+ -rdynamic linker option too. Note that names of "static" functions are not
+ exposed, and won't be available in the backtrace.
+
+config KEMBTK_UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config KEMBTK_UCLIBC_EXTRA_WARNINGS
+ bool "Enable extra annoying warnings"
+ help
+ If you wish to build with extra warnings enabled, say Y here.
+
+config KEMBTK_UCLIBC_DOMULTI
+ bool "Compile all sources at once into an object"
+ help
+ Set this to compile all sources at once into an object (IMA).
+ This mode of compilation uses alot of memory but may produce
+ smaller binaries.
+
+ Note that you need a very recent GCC for this to work, like
+ gcc >= 4.3 plus eventually some patches.
+
+ If unsure, keep the default of N.
+
+config KEMBTK_UCLIBC_UCLIBC_MJN3_ONLY
+ bool "Manuel's hidden warnings"
+ help
+ Answer Y here to see all Manuel's personal notes, warnings, and todos.
+
+ Most people will answer N.
+