# see extra/config/Kconfig-language.txt
#
-mainmenu "uClibc C Library Configuration"
+mainmenu "uClibc-ng $VERSION C Library Configuration"
config DESIRED_TARGET_ARCH
string
option env="ARCH"
+config VERSION
+ string
+ option env="VERSION"
+
choice
prompt "Target Architecture"
default TARGET_alpha if DESIRED_TARGET_ARCH = "alpha"
+ default TARGET_arc if DESIRED_TARGET_ARCH = "arc"
default TARGET_arm if DESIRED_TARGET_ARCH = "arm"
default TARGET_avr32 if DESIRED_TARGET_ARCH = "avr32"
default TARGET_bfin if DESIRED_TARGET_ARCH = "bfin"
default TARGET_i960 if DESIRED_TARGET_ARCH = "i960"
default TARGET_ia64 if DESIRED_TARGET_ARCH = "ia64"
default TARGET_m68k if DESIRED_TARGET_ARCH = "m68k"
+ default TARGET_metag if DESIRED_TARGET_ARCH = "metag"
default TARGET_microblaze if DESIRED_TARGET_ARCH = "microblaze"
default TARGET_mips if DESIRED_TARGET_ARCH = "mips"
default TARGET_nios if DESIRED_TARGET_ARCH = "nios"
help
The architecture of your target.
-config TARGET_alpha
- bool "alpha"
+#config TARGET_alpha
+# bool "alpha"
+
+config TARGET_arc
+ bool "arc"
config TARGET_arm
bool "arm"
config TARGET_bfin
bool "bfin"
+# someone could sync this tree:
+# http://linux-c6x.org/git/?p=uClibc.git;a=summary
+config TARGET_c6x
+ bool "c6x"
+
config TARGET_cris
bool "cris"
-config TARGET_e1
- bool "e1 (BROKEN)"
+#config TARGET_e1
+# bool "e1 (BROKEN)"
-config TARGET_frv
- bool "frv (BROKEN)"
+#config TARGET_frv
+# bool "frv (BROKEN)"
-config TARGET_h8300
- bool "h8300 (BROKEN)"
+#config TARGET_h8300
+# bool "h8300 (BROKEN)"
-config TARGET_hppa
- bool "hppa"
+#config TARGET_hppa
+# bool "hppa"
config TARGET_i386
bool "i386"
-config TARGET_i960
- bool "i960 (BROKEN)"
+#config TARGET_i960
+# bool "i960 (BROKEN)"
-config TARGET_ia64
- bool "ia64"
+#config TARGET_ia64
+# bool "ia64"
config TARGET_m68k
bool "m68k"
+#config TARGET_metag
+# bool "metag"
+
config TARGET_microblaze
bool "microblaze"
config TARGET_mips
bool "mips"
-config TARGET_nios
- bool "nios"
+#config TARGET_nios
+# bool "nios"
config TARGET_nios2
bool "nios2"
config TARGET_sh
bool "superh"
-config TARGET_sh64
- bool "sh64"
+#config TARGET_sh64
+# bool "sh64"
config TARGET_sparc
bool "sparc"
-config TARGET_v850
- bool "v850 (BROKEN)"
+#config TARGET_v850
+# bool "v850 (BROKEN)"
-config TARGET_vax
- bool "vax"
+#config TARGET_vax
+# bool "vax"
config TARGET_x86_64
bool "x86_64"
config TARGET_xtensa
bool "xtensa"
-config TARGET_c6x
- bool "c6x"
-
endchoice
source "extra/Configs/Config.m68k"
endif
+if TARGET_metag
+source "extra/Configs/Config.metag"
+endif
+
if TARGET_nios
source "extra/Configs/Config.nios"
endif
source "extra/Configs/Config.c6x"
endif
+if TARGET_arc
+source "extra/Configs/Config.arc"
+endif
+
config TARGET_SUBARCH
string
default "e500" if CONFIG_E500
default "classic" if CONFIG_CLASSIC
default "sh4" if CONFIG_SH4
- default "" if CONFIG_GENERIC_386 || CONFIG_386
+ default "" if CONFIG_386
default "i486" if CONFIG_486
- default "i586" if CONFIG_586 || CONFIG_586MMX
- default "i686" if TARGET_ARCH = "i386"
+ default "i586" if CONFIG_586
+ default "i686" if CONFIG_686
default ""
source "extra/Configs/Config.in.arch"
bool
select ARCH_HAS_NO_SHARED
+config ARCH_HAS_UCONTEXT
+ bool
+
config HAVE_SHARED
bool "Enable shared libraries"
depends on !ARCH_HAS_NO_SHARED
Usage of RUNPATH tags is not too common, so disabling this feature
should be safe for most people.
+config LDSO_RUNPATH_OF_EXECUTABLE
+ bool "Use executables RPATH/RUNPATH when searching for libraries."
+ depends on LDSO_RUNPATH
+ default n
+ help
+ Use the executables RPATH/RUNPATH to find to find libraries even
+ though this behavour is not standard. Setting this option causes
+ the uclibc dynamic linker behavour to match the glibc dynamic linker.
+
+config LDSO_SAFE_RUNPATH
+ bool "Allow only RUNPATH beginning with /"
+ depends on LDSO_RUNPATH
+ default y
+ help
+ Allow only absolute path in RPATH/RUNPATH.
+
config LDSO_SEARCH_INTERP_PATH
bool "Add ldso path to lib search path"
depends on HAVE_SHARED
config LDSO_NO_CLEANUP
bool "Disable automatic unloading of dynamically loaded shared objects"
depends on HAVE_SHARED
- default n
help
If you need complete allocation traces when debugging memory leaks
using Valgrind in a process that dynamically loads shared objects,
Unless you know you need this, you should answer N.
config UCLIBC_CTOR_DTOR
- bool "Support global constructors and destructors"
+ boolean
default y
help
If you wish to build uClibc with support for global constructor
choice
prompt "Thread support"
- #default UCLIBC_HAS_THREADS_NATIVE if (TARGET_alpha || TARGET_arm || TARGET_i386 || TARGET_mips || TARGET_powerpc || TARGET_sh || TARGET_sh64)
default HAS_NO_THREADS
help
If you want to compile uClibc with pthread support, then answer Y.
help
Disable thread support.
-config LINUXTHREADS_OLD
- bool "older (stable) version of linuxthreads"
- # linuxthreads and linuxthreads.old need nanosleep()
+config UCLIBC_HAS_LINUXTHREADS
+ bool "Enable support for linuxthreads"
+ # linuxthreads need nanosleep()
select 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 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).
+ depends on !TARGET_arc && \
+ !TARGET_i386 && \
+ !TARGET_metag && \
+ !TARGET_mips && \
+ !TARGET_powerpc && \
+ !TARGET_sh && \
+ !TARGET_sparc && \
+ !TARGET_x86_64 && \
+ !TARGET_xtensa
+ help
+ See here for information about linuxthreads:
+ http://en.wikipedia.org/wiki/LinuxThreads
config UCLIBC_HAS_THREADS_NATIVE
bool "Native POSIX Threading (NPTL)"
select UCLIBC_HAS_TLS
select UCLIBC_HAS_STDIO_FUTEXES
- # NPTL local:
- select EXTRA_WARNINGS
+ select UCLIBC_HAS_REALTIME
# i386 has no lowlevellock support (yet) as opposed to i486 onward
- depends on !CONFIG_386
+ depends on !CONFIG_386 && \
+ !TARGET_alpha && \
+ !TARGET_avr32 && \
+ !TARGET_bfin && \
+ !TARGET_c6x && \
+ !TARGET_cris && \
+ !TARGET_hppa && \
+ !TARGET_ia64 && \
+ !TARGET_m68k && \
+ !TARGET_microblaze && \
+ !TARGET_nios2 && \
+ !TARGET_vax
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 UCLIBC_HAS_THREADS
If you are doing development and want to debug applications using
uClibc's pthread library, answer Y. Otherwise, answer N.
-
config UCLIBC_HAS_SYSLOG
bool "Syslog support"
default y
does not detect glibc style returning-a-valid-pointer-for-malloc(0)
behavior). Most people can safely answer N.
+config UCLIBC_HAS_OBSTACK
+ bool "Obstack Support (gnu extension)"
+ help
+ When this option is enabled, uClibc will provide support for obstacks.
+ An obstack is a structure in which memory can be dynamically allocated
+ as a 'stack of objects'. Many programs need this GNU extention and
+ you should say Y if you are using any. Otherwise, say N to save some
+ space.
+
config UCLIBC_DYNAMIC_ATEXIT
bool "Dynamic atexit() Support"
default y
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 UCLIBC_SUSV2_LEGACY
+ bool "Enable SuSv2 LEGACY functions"
+ help
+ Enable this option if you want to have SuSv2 LEGACY functions
+ Currently applies to:
+
+ valloc
+
+ WARNING! ABI incompatibility.
+
config UCLIBC_SUSV3_LEGACY
bool "Enable SuSv3 LEGACY functions"
#vfork,
WARNING! ABI incompatibility.
+config UCLIBC_HAS_CONTEXT_FUNCS
+ bool "Use obsolescent context control functions"
+ depends on UCLIBC_SUSV3_LEGACY && ARCH_HAS_UCONTEXT
+ help
+ Add into library the SuSv3 obsolescent functions used for context
+ control. The setcontext family allows the implementation in C of
+ advanced control flow patterns such as iterators, fibers, and
+ coroutines. They may be viewed as an advanced version of
+ setjmp/longjmp; whereas the latter allows only a single non-local jump
+ up the stack, setcontext allows the creation of multiple cooperative
+ threads of control, each with its own stack.
+ These functions are: setcontext, getcontext, makecontext, swapcontext.
+
config UCLIBC_SUSV3_LEGACY_MACROS
bool "Enable SuSv3 LEGACY macros"
help
WARNING! ABI incompatibility.
config UCLIBC_STRICT_HEADERS
- bool "Enable structures and constants for unsupported features"
+ bool "Hide structures and constants for unsupported features"
help
- Enable structures and constants in headers that should not be used,
+ Hide 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,
config UCLIBC_HAS___PROGNAME
bool "Support for __progname"
default y
- depends on 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.
default y
help
accept4(), bdflush(),
- capget(), capset(), eventfd(), fstatfs(),
- inotify_*(), ioperm(), iopl(),
+ capget(), capset(), eventfd(), fallocate(),
+ fstatfs(), inotify_*(), ioperm(), iopl(),
madvise(), modify_ldt(), pipe2(), personality(),
prctl()/arch_prctl(), pivot_root(), modify_ldt(),
ppoll(), readahead(), reboot(), remap_file_pages(),
sched_getaffinity(), sched_setaffinity(), sendfile(),
setfsgid(), setfsuid(), setresgid(), setresuid(),
- splice(), vmsplice(), tee(), signalfd(), swapoff(), swapon(),
- sync_file_range(), _sysctl(), sysinfo(), timerfd_*(), vhangup(),
- umount(), umount2()
+ splice(), vmsplice(), tee(), signalfd(), statfs(),
+ swapoff(), swapon(), sync_file_range(), _sysctl(),
+ sysinfo(), timerfd_*(), vhangup(), umount(), umount2()
config UCLIBC_HAS_GNU_ERROR
bool "Support GNU extensions for error-reporting"
In particular, the following functions will be added to the
library:
+ ns_skiprr, ns_initparse, ns_parserr, ns_msg_getflag,
+ res_mkquery, res_init, res_ninit, res_close, res_nclose
+ res_query, res_search, res_querydomain,
+ dn_expand, dn_comp,
+ ns_name_uncompress, ns_name_ntop, ns_name_pton, ns_name_unpack,
+ ns_name_pack, ns_name_compress, ns_name_skip, dn_skipname,
ns_get16, ns_get32, ns_put16, ns_put32
config UCLIBC_HAS_LIBRESOLV_STUB
These are small and fast, the only reason _not_ to say Y here is
for debugging purposes.
+config UCLIBC_HAS_STDIO_FUTEXES
+ bool "Use futexes for multithreaded I/O locking"
+ depends on 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 UCLIBC_HAS_CTYPE_TABLES
bool "Use Table Versions Of 'ctype.h' Functions."
default y
config UCLIBC_PREGENERATED_LOCALE_DATA
bool "Use Pre-generated Locale Data"
- depends on UCLIBC_HAS_LOCALE
+ depends on UCLIBC_HAS_LOCALE && !TARGET_metag
help
Use pre-built locale data.
Most people will answer 9.
-
-config 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"
default UCLIBC_HAS_STDIO_BUFSIZ_4096
help
Answer Y if you want to include full gnu getopt() instead of a
(much smaller) SUSv3 compatible getopt().
+ Note that getopt_long, getopt_long_only as well as getsubopt
+ are implemented on top of this choice.
Most people will answer Y.
-config UCLIBC_HAS_STDIO_FUTEXES
- bool "Use futexes for multithreaded I/O locking"
- depends on 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 UCLIBC_HAS_GETOPT_LONG
- bool "Support getopt_long/getopt_long_only"
- depends on !UCLIBC_HAS_GNU_GETOPT
+ bool "Support getopt_long/getopt_long_only (glibc-compat)"
default y
help
- Answer Y if you want to include getopt_long[_only() used by many
- apps, even busybox.
+ Answer Y if you want to include getopt_long[_only()] used by many
+ apps.
Most people will answer Y.
config UCLIBC_HAS_GNU_GETSUBOPT
- bool "Support glibc getsubopt"
+ bool "Support getsubopt"
default y
help
- Answer Y if you want to include glibc getsubopt() instead of a
- smaller SUSv3 compatible getsubopt().
+ Answer Y if you want to include getsubopt().
Most people will answer Y.
endmenu
a pressing need for nftw(), you should probably answer N.
config UCLIBC_HAS_FTW
- bool "Support the ftw() interface"
+ bool "Support the ftw() interface (SUSv4-obsolete)"
depends on UCLIBC_SUSV4_LEGACY
help
The SuSv3 ftw() interface is used to recursively descend
Most people will answer N.
+config ARC4RANDOM_USES_NODEV
+ bool "Do not use /dev/urandom with arc4random()"
+ depends on UCLIBC_HAS_ARC4RANDOM
+ help
+ Answer Y to use gettimeofday(2) and getpid(2) exclusively for
+ arc4random(). This is not a bad idea for a diskless system, but
+ it uses a lot of syscalls to stir each array element.
+
+ Most people will answer N.
+
config HAVE_NO_SSP
bool
choice
prompt "Propolice protection blocking signal"
depends on UCLIBC_HAS_SSP
- default PROPOLICE_BLOCK_ABRT if ! DODEBUG
- default PROPOLICE_BLOCK_SEGV if DODEBUG
+ depends on DODEBUG
+ default PROPOLICE_BLOCK_SEGV
help
"abort" use SIGABRT to block offending programs.
This is the default implementation.
endmenu
-menu "uClibc development/debugging options"
+menu "Development/debugging options"
config CROSS_COMPILER_PREFIX
string "Cross-compiling toolchain prefix"
then enter 'arm-linux-uclibc-' here.
config UCLIBC_EXTRA_CFLAGS
- string "Extra CFLAGS to use to build uClibc"
+ string "Extra CFLAGS"
default ""
help
Add any additional CFLAGS to be used to build uClibc.
config DODEBUG
- bool "Build uClibc with debugging symbols"
+ bool "Enable debugging symbols"
select EXTRA_WARNINGS
help
Say Y here if you wish to compile uClibc with debugging symbols.
config DODEBUG_PT
bool "Build pthread with debugging output"
- depends on UCLIBC_HAS_THREADS && LINUXTHREADS_OLD
+ depends on UCLIBC_HAS_THREADS && UCLIBC_HAS_LINUXTHREADS
help
Enable debug output in libpthread. This is only useful when doing
development in libpthread itself.
Most people will answer Y.
config DOASSERTS
- bool "Build uClibc with run-time assertion testing"
+ bool "Build with run-time assertion testing"
help
Say Y here to include runtime assertion tests.
This enables runtime assertion testing in some code, which can
config UCLIBC_MALLOC_DEBUGGING
bool "Build malloc with debugging support"
depends on MALLOC || MALLOC_STANDARD
+ select DOASSERTS
help
Answer Y here to compile extra debugging support code into malloc.
Malloc debugging output may then be enabled at runtime using the
If unsure, keep the default of N.
-config 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.
-
endmenu