OSDN Git Service

Config.in.arch: enable long double math for xtensa
[uclinux-h8/uClibc.git] / extra / Configs / Config.in.arch
index 44ed6ee..68e03bf 100644 (file)
 # 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.  
@@ -32,6 +113,16 @@ config UCLIBC_HAS_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
@@ -42,12 +133,11 @@ config UCLIBC_HAS_FLOATS
          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
@@ -61,13 +151,12 @@ config HAS_FPU
 
 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
@@ -78,40 +167,57 @@ config DO_C99_MATH
          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
-