# see extra/config/Kconfig-language.txt
#
+
+#
+# Binary format
+#
+if !ARCH_USE_MMU
choice
- prompt "Target Processor Endianness"
+ prompt "Target File Format"
+config UCLIBC_FORMAT_FDPIC_ELF
+ bool "FDPIC ELF"
+ depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv)
+ select DOPIC
+config UCLIBC_FORMAT_DSBT_ELF
+ bool "DBST ELF"
+ depends on !ARCH_USE_MMU && TARGET_c6x
+ select DOPIC
+config UCLIBC_FORMAT_FLAT
+ bool "STATIC FLAT"
+ depends on !ARCH_USE_MMU
+ select ARCH_HAS_NO_LDSO
+config UCLIBC_FORMAT_FLAT_SEP_DATA
+ bool "STATIC FLAT (sep-data)"
+ depends on !ARCH_USE_MMU
+ select ARCH_HAS_NO_LDSO
+config UCLIBC_FORMAT_SHARED_FLAT
+ bool "SHARED FLAT"
+ depends on !ARCH_USE_MMU
+ select ARCH_HAS_NO_LDSO
help
- This is the endianness you wish to build use. Choose either Big
- Endian, or Little Endian.
+ Pick this one if you are using uClinux and wish to build
+ uClibc as a flat-format shared library.
+endchoice
+endif
+if ARCH_USE_MMU
+comment "Using ELF file format"
+endif
-config ARCH_LITTLE_ENDIAN
- bool "Little Endian"
+config ARCH_HAS_DEPRECATED_SYSCALLS
+ bool
+ help
+ New architectures do not support deprecated system calls. However,
+ these system calls are needed to build linuxthreads (old and new) so
+ this symbol controls whether there is support for these threading libraries
+ or not.
+
+config UCLIBC_SHARED_FLAT_ID
+ int "Shared library ID"
+ default 1
+ depends on 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 ARCH_ANY_ENDIAN
+ bool
config ARCH_BIG_ENDIAN
+ bool
+config ARCH_LITTLE_ENDIAN
+ bool
+if 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 ARCH_WANTS_BIG_ENDIAN
bool "Big Endian"
-
+ select ARCH_BIG_ENDIAN
+config ARCH_WANTS_LITTLE_ENDIAN
+ bool "Little Endian"
+ select ARCH_LITTLE_ENDIAN
endchoice
+endif
+# if the arch only supports one endian, just display the setting
+if !ARCH_ANY_ENDIAN && ARCH_LITTLE_ENDIAN
+comment "Using Little Endian"
+endif
+if !ARCH_ANY_ENDIAN && ARCH_BIG_ENDIAN
+comment "Using Big Endian"
+endif
config ARCH_HAS_NO_MMU
bool
- default n
+if ARCH_HAS_NO_MMU
+comment "Target CPU lacks a memory management unit (MMU)"
+endif
-config UCLIBC_HAS_MMU
+config ARCH_HAS_MMU
bool "Target CPU has a memory management unit (MMU)"
+ depends on !ARCH_HAS_NO_MMU
default y
- depends !ARCH_HAS_NO_MMU
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.
Most people will answer Y.
+config ARCH_USE_MMU
+ bool "Do you want to utilize the MMU?"
+ depends on 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 UCLIBC_HAS_FLOATS
bool "Enable floating point number support"
default y
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.
+ Answering N to this option can reduce the size of uClibc.
+ Most people will answer Y.
-config HAS_FPU
+config UCLIBC_HAS_FPU
bool "Target CPU has a floating point unit (FPU)"
- depends on UCLIBC_HAS_FLOATS
default y
help
If your target CPU does not have a Floating Point Unit (FPU) or a
config UCLIBC_HAS_SOFT_FLOAT
bool
- depends on UCLIBC_HAS_FLOATS && !HAS_FPU
+ depends on UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
default y
config DO_C99_MATH
bool "Enable full C99 math library support"
depends on 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
If your applications require the newer C99 math library functions,
then answer Y.
-config WARNINGS
- string "Compiler Warnings"
- default "-Wall"
+config DO_XSI_MATH
+ bool "Enable XSI math extensions to the ISO C standard (bessel)"
+ depends on UCLIBC_HAS_FLOATS
help
- Set this to the set of gcc warnings you wish to see while compiling.
+ X/Open System Interfaces extensions to ISO C math functions
+ (differential equation functions):
-config KERNEL_SOURCE
- string "Linux kernel header location"
- default "/usr/src/linux"
+ j0, j1, jn - Bessel functions of the first kind
+ y0, y1, yn - Bessel functions of the second kind
+
+config UCLIBC_HAS_FENV
+ bool "Enable C99 Floating-point environment"
+ depends on UCLIBC_HAS_FLOATS
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.
+ If you want the uClibc math library to contain the C99 floating
+ point environment, rounding and exception handling functions then
+ say Y here.
-config UCLIBC_UCLINUX_BROKEN_MUNMAP
- bool
- depends on !UCLIBC_HAS_MMU
+ NOTE: Supported architectures currently include:
+ i386
+
+config UCLIBC_HAS_LONG_DOUBLE_MATH
+ bool "Enable long double support"
+ depends on DO_C99_MATH
+ depends on TARGET_i386 || TARGET_m68k || TARGET_sparc || TARGET_x86_64 || TARGET_powerpc || TARGET_sh || TARGET_microblaze || TARGET_xtensa
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 EXCLUDE_BRK
+config KERNEL_HEADERS
+ string "Linux kernel header location"
+ default ""
+ 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.
+
+ If you don't set this, we'll assume the toolchain can find them.
+
+config UCLIBC_UCLINUX_BROKEN_MUNMAP
bool
- depends on !UCLIBC_HAS_MMU
+ depends on !ARCH_USE_MMU
default y
-config C_SYMBOL_PREFIX
- string
- default "_" if ARCH_HAS_C_SYMBOL_PREFIX
- default "" if !ARCH_HAS_C_SYMBOL_PREFIX
-
config HAVE_DOT_CONFIG
bool
default y
-