summaryrefslogtreecommitdiff
path: root/kconfig/uclibc-kconfigs/uclibc.kconfig
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2010-03-14 12:22:02 +0100
committerAbdoulaye Walsimou Gaye <walsimou@walsimou.com>2010-03-14 12:22:42 +0100
commit5e626d7ae7ad7c9e85770d838bb64fe0c4a4d79d (patch)
tree2637a7bb65ff6b9d07c0b494e0de038431d2cdf5 /kconfig/uclibc-kconfigs/uclibc.kconfig
parent3d7f707700d58b12ab5435fc6c764771aa58a324 (diff)
downloadembtoolkit-5e626d7ae7ad7c9e85770d838bb64fe0c4a4d79d.tar.gz
embtoolkit-5e626d7ae7ad7c9e85770d838bb64fe0c4a4d79d.tar.bz2
embtoolkit-5e626d7ae7ad7c9e85770d838bb64fe0c4a4d79d.tar.xz
Toolchain: uClibc: rework the way options are handled by distinguishing versions
Signed-off-by: Abdoulaye Walsimou Gaye <walsimou@walsimou.com>
Diffstat (limited to 'kconfig/uclibc-kconfigs/uclibc.kconfig')
-rw-r--r--kconfig/uclibc-kconfigs/uclibc.kconfig2104
1 files changed, 11 insertions, 2093 deletions
diff --git a/kconfig/uclibc-kconfigs/uclibc.kconfig b/kconfig/uclibc-kconfigs/uclibc.kconfig
index 3f5b7ed..e646bbc 100644
--- a/kconfig/uclibc-kconfigs/uclibc.kconfig
+++ b/kconfig/uclibc-kconfigs/uclibc.kconfig
@@ -1,6 +1,6 @@
################################################################################
# GAYE Abdoulaye Walsimou, <walsimou@walsimou.com>
-# Copyright(C) 2009 GAYE Abdoulaye Walsimou. All rights reserved.
+# Copyright(C) 2009-2010 GAYE Abdoulaye Walsimou. All rights reserved.
# For Copyrright from linux kernel's build/configure system, see their source
# code
#
@@ -168,9 +168,6 @@ config KEMBTK_UCLIBC_TARGET_xtensa
bool
default n
-comment "----------------"
-comment "Target Architecture Features and Options"
-comment "----------------"
config EMBTK_UCLIBC_VERSION_STRING
string
default "0.9.30.2" if EMBTK_UCLIBC_VERSION_0_9_30_2
@@ -178,2106 +175,27 @@ config EMBTK_UCLIBC_VERSION_STRING
default "0.9.30" if EMBTK_UCLIBC_VERSION_0_9_30
default "git" if EMBTK_UCLIBC_VERSION_GIT
+comment "----------------"
+comment "Target Architecture Features and Options"
+comment "----------------"
if KEMBTK_UCLIBC_TARGET_arm
source kconfig/uclibc-kconfigs/uclibc-arm.kconfig
endif
if KEMBTK_UCLIBC_TARGET_mips
-source kconfig/uclibc-kconfigs/uclibc-mips.kconfig
+source "kconfig/uclibc-kconfigs/uclibc-mips.kconfig"
endif
config KEMBTK_UCLIBC_TARGET_SUBARCH
string
default ""
-####################### Similar to Configs/Config.arch.in ######################
-
-#
-# 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
-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
-config KEMBTK_UCLIBC_ARCH_WANTS_BIG_ENDIAN
- bool
- default y if EMBTK_ARCH_ARM_BIG_ENDIAN || EMBTK_ARCH_MIPS_BIG_ENDIAN
- select KEMBTK_UCLIBC_ARCH_BIG_ENDIAN
- default n
-
-config KEMBTK_UCLIBC_ARCH_WANTS_LITTLE_ENDIAN
- bool
- default y if EMBTK_ARCH_ARM_LITTLE_ENDIAN \
- || EMBTK_ARCH_MIPS_LITTLE_ENDIAN
- select KEMBTK_UCLIBC_ARCH_LITTLE_ENDIAN
- default n
-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
- depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
- default y if EMBTK_HARDFLOAT
- default n if EMBTK_SOFTFLOAT
- 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
- default n
- 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_UCLIBC_HAS_FENV
- bool
- depends on KEMBTK_UCLIBC_UCLIBC_HAS_FLOATS
- default n
- 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
- 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_EXCLUDE_BRK
- bool
- depends on !KEMBTK_UCLIBC_ARCH_USE_MMU
- default y
-
-config KEMBTK_UCLIBC_HAVE_DOT_CONFIG
- bool
- default y
-
-##################### End similar to Configs/Config.arch.in ####################
-comment "----------------"
-comment "General Library Settings"
-comment "----------------"
-
-config KEMBTK_UCLIBC_HAVE_NO_PIC
- bool
- default n
-
-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
- default n
-
-config KEMBTK_UCLIBC_ARCH_HAS_NO_LDSO
- bool
- select KEMBTK_UCLIBC_ARCH_HAS_NO_SHARED
- default n
-
-config KEMBTK_UCLIBC_HAVE_SHARED
- bool "Enable support for 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
- default n
- 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 this to 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 makes 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_FILE_SUPPORT
- bool "Enable library loader preload file (ld.so.preload)"
- depends on KEMBTK_UCLIBC_HAVE_SHARED
- default n
- 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
- 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_LDSO_BASE_FILENAME
- string
- 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
- 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_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
- default n
- 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
-
-config KEMBTK_UCLIBC_HAS_NO_THREADS
- bool
- default n
-
-config KEMBTK_UCLIBC_UCLIBC_HAS_THREADS
- bool "POSIX Threading support"
- depends on !KEMBTK_UCLIBC_HAS_NO_THREADS
- default y
- # linuxthreads and linuxthreads.old need nanosleep()
- select KEMBTK_UCLIBC_UCLIBC_HAS_REALTIME
- 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.
-
- If your applications require pthreads, answer Y.
-
-config KEMBTK_UCLIBC_PTHREADS_DEBUG_SUPPORT
- bool "Build pthreads debugging support"
- default n
- 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_LINUXTHREADS_OLD
- bool "Use the older (stable) version of linuxthreads"
- default y
- depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS
- 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.
-
- 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_LINUXTHREADS_NEW
- def_bool y
- depends on KEMBTK_UCLIBC_UCLIBC_HAS_THREADS \
- && !KEMBTK_UCLIBC_LINUXTHREADS_OLD
-
-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"
- default KEMBTK_UCLIBC_MALLOC if !KEMBTK_UCLIBC_ARCH_USE_MMU
- default KEMBTK_UCLIBC_MALLOC_STANDARD if KEMBTK_UCLIBC_ARCH_USE_MMU
-
-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 "Malloc returns live pointer for malloc(0)"
- default n
- 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
- possible to exceed the default number when this option is disabled.
- 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"
- default n
- help
- Enable this option if you want to update from 0.9.28 to svn/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 n
- 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 bcopy/bzero/bcmp/index/rindex/ftime.
- WARNING! ABI incompatibility.
-
-config KEMBTK_UCLIBC_UCLIBC_SUSV3_LEGACY_MACROS
- bool "Enable SuSv3 LEGACY macros"
- default n
- 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_HAS_STUBS
- bool "Provide stubs for unavailable functionality"
- default n
- 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.
-
- As of 2008-07, this option makes uClibc provide fork() stub
- on NOMMU targets. It always sets errno to ENOSYS and returns -1.
-
- This may be useful if you port a lot of software and cannot
- audit all of it and replace or disable fork() usage.
- With this option, a program which uses fork() will build
- successfully. Of course, it may be useless if fork()
- is essential for its operation.
-
-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"
- default n
- 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)"
- default n
- 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.
+#Include uClibc version specifical options
+if EMBTK_UCLIBC_VERSION_0_9_30_2 || EMBTK_UCLIBC_VERSION_0_9_30_1 || \
+ EMBTK_UCLIBC_VERSION_0_9_30
+source kconfig/uclibc-kconfigs/uclibc-0.9.30.kconfig
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_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'.
-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 y
- 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.
-
-config KEMBTK_UCLIBC_UCLIBC_LINUX_SPECIFIC
- bool "Linux specific functions"
- default y
- help
- fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(),
- personality(), ppoll(), setresuid(), signalfd()
-
-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"
- default n
- 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"
- default n
- 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"
- default n
- 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"
- default n
- 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 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
-
-comment "----------------"
-comment "Netwoking options"
-comment "----------------"
-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 n
- 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 n
- # 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"
- 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"
- 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"
- default n
- 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
- default n
- 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)"
- default n
- help
- Answer Y if you desperately want to support BSD compatibility in
- the network code.
-
- Most people will say N.
+if EMBTK_UCLIBC_VERSION_GIT
+source kconfig/uclibc-kconfigs/uclibc-git.kconfig
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
- default KEMBTK_UCLIBC_UCLIBC_HAS_CTYPE_UNSAFE
- 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"
- default n
- 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
- default n
- 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 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.
-
-config KEMBTK_UCLIBC_UCLIBC_PREGENERATED_LOCALE_DATA
- bool "Use Pre-generated Locale Data"
- depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
- default n
- 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 unless you have a cached
- set of prebuilt data.
-
-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
- default n
- 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.
-
- Just say N here.
-
-config KEMBTK_UCLIBC_UCLIBC_HAS_XLOCALE
- bool "Extended Locale Support (experimental/incomplete)"
- depends on KEMBTK_UCLIBC_UCLIBC_HAS_LOCALE
- default n
- 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
- default n
- 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
- default n
- 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
- default n
- help
- Answer Y to support glibc's register_printf_function() to allow an
- application to add its own printf conversion specifiers.
-
- 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
- default n
- 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)"
- default n
- 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"
- default KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_4096
- 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_NONE
- bool "none (WARNING - BUFSIZ will be 256 in stdio.h)"
- depends on !KEMBTK_UCLIBC_UCLIBC_HAS_WCHAR
-
-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
-
-choice
- prompt "Stdio builtin buffer size (uClibc-specific)"
- depends on !KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUFSIZ_NONE
- default KEMBTK_UCLIBC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_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."
- default n
- 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
- default n
- 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)"
- default n
- 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)"
- default n
- 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)"
- default n
- 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
- default n
- 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
- default n
- 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
- default n
- 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_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
- default n
- 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_FTW
- bool "Support the ftw() and nftw() interfaces"
- default n
- help
- The SuSv3 ftw() and nftw() interfaces are 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() or nftw(), you should probably 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
- default n
- 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.
-
-comment "----------------"
-comment "Library Installation Options"
-comment "----------------"
-config KEMBTK_UCLIBC_SHARED_LIB_LOADER_PREFIX
- string
- depends on KEMBTK_UCLIBC_HAVE_SHARED
- default "$(RUNTIME_PREFIX)lib"
- help
- When using shared libraries, this path is the location where the
- shared library will be invoked. This value will be compiled into
- every binary compiled with uClibc.
-
- For a typical target system this should be set to "/lib", such that
- 'make install' will install /lib/ld-uClibc.so.0.
-
- BIG FAT WARNING:
- If you do not have a shared library loader with the correct name
- sitting in the directory this points to, your binaries will not
- run.
-
-config KEMBTK_UCLIBC_RUNTIME_PREFIX
- string
- default "/usr/$(TARGET_ARCH)-linux-uclibc/"
- help
- RUNTIME_PREFIX is the directory into which the uClibc runtime
- libraries will be installed. The result will look something
- like the following:
- $(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/$(TARGET_ARCH)-linux-uclibc/usr/"
- help
- DEVEL_PREFIX is the directory into which the uClibc development
- environment will be installed. The result will look something
- like the following:
- $(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>.
-
-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
- default n
- 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 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"
- default n
- 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
- default n
-
-config KEMBTK_UCLIBC_UCLIBC_HAS_SSP
- bool "Support for GCC stack smashing protector"
- depends on !KEMBTK_UCLIBC_HAVE_NO_SSP
- default n
- 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
- default n
- 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
- default n
- 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
- default KEMBTK_UCLIBC_PROPOLICE_BLOCK_ABRT if ! KEMBTK_UCLIBC_DODEBUG
- default KEMBTK_UCLIBC_PROPOLICE_BLOCK_SEGV if KEMBTK_UCLIBC_DODEBUG
- 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
- default n
- 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
- default n
- 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"
- default n
- 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
- default n
- help
- Enable debug output in libpthread. This is only useful when doing
- development in libpthread itself.
-
- Otherwise, answer N.
-
-config KEMBTK_UCLIBC_DOSTRIP
- bool "Strip libraries and executables"
- default y
- 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"
- default n
- 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
- default n
- 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
- default n
- 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
- default n
- help
- Answer Y here to compile extra debugging support code into malloc.
- Malloc debugging output may then be enabled at runtime using the
- MALLOC_DEBUG environment variable.
-
- The value of 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_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"
- default n
- 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"
- default n
- 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"
- default n
- help
- Answer Y here to see all Manuel's personal notes, warnings, and todos.
-
- Most people will answer N.
-