| lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | # |
| 2 | # For a description of the syntax of this configuration file, |
| 3 | # see extra/config/Kconfig-language.txt |
| 4 | # |
| 5 | |
| 6 | |
| 7 | # |
| 8 | # Binary format |
| 9 | # |
| 10 | if !ARCH_USE_MMU |
| 11 | choice |
| 12 | prompt "Target File Format" |
| 13 | config UCLIBC_FORMAT_ELF |
| 14 | bool "ELF" |
| 15 | depends on ARCH_USE_MMU |
| 16 | config UCLIBC_FORMAT_FDPIC_ELF |
| 17 | bool "FDPIC ELF" |
| 18 | depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv) |
| 19 | select DOPIC |
| 20 | config UCLIBC_FORMAT_DSBT_ELF |
| 21 | bool "DBST ELF" |
| 22 | depends on !ARCH_USE_MMU && TARGET_c6x |
| 23 | select DOPIC |
| 24 | config UCLIBC_FORMAT_FLAT |
| 25 | bool "STATIC FLAT" |
| 26 | depends on !ARCH_USE_MMU |
| 27 | select ARCH_HAS_NO_LDSO |
| 28 | config UCLIBC_FORMAT_FLAT_SEP_DATA |
| 29 | bool "STATIC FLAT (sep-data)" |
| 30 | depends on !ARCH_USE_MMU |
| 31 | select ARCH_HAS_NO_LDSO |
| 32 | config UCLIBC_FORMAT_SHARED_FLAT |
| 33 | bool "SHARED FLAT" |
| 34 | depends on !ARCH_USE_MMU |
| 35 | select ARCH_HAS_NO_LDSO |
| 36 | help |
| 37 | Pick this one if you are using uClinux and wish to build |
| 38 | uClibc as a flat-format shared library. |
| 39 | endchoice |
| 40 | endif |
| 41 | if ARCH_USE_MMU |
| 42 | comment "Using ELF file format" |
| 43 | endif |
| 44 | |
| 45 | config UCLIBC_SHARED_FLAT_ID |
| 46 | int "Shared library ID" |
| 47 | default 1 |
| 48 | depends on UCLIBC_FORMAT_SHARED_FLAT |
| 49 | help |
| 50 | When using flat shared libraries, every library has a unique |
| 51 | system-wide identifier. Identifier 0 is reserved for |
| 52 | executables and true shared libraries have identifiers |
| 53 | starting at 1. The maximum shared library identifier is |
| 54 | determined by the kernel and is usually 3. Shared library |
| 55 | N must be available on the target system as "/lib/libN.so". |
| 56 | |
| 57 | When a shared C library is used, it usually has identifier 1, |
| 58 | but you can use this option to select a different identifier |
| 59 | if you need to. |
| 60 | |
| 61 | |
| 62 | |
| 63 | # |
| 64 | # Endian Format |
| 65 | # |
| 66 | config ARCH_ANY_ENDIAN |
| 67 | bool |
| 68 | config ARCH_BIG_ENDIAN |
| 69 | bool |
| 70 | config ARCH_LITTLE_ENDIAN |
| 71 | bool |
| 72 | if ARCH_ANY_ENDIAN |
| 73 | choice |
| 74 | prompt "Target Processor Endianness" |
| 75 | help |
| 76 | This is the endianness you wish to use. Choose either Big |
| 77 | Endian, or Little Endian. |
| 78 | config ARCH_WANTS_BIG_ENDIAN |
| 79 | bool "Big Endian" |
| 80 | select ARCH_BIG_ENDIAN |
| 81 | config ARCH_WANTS_LITTLE_ENDIAN |
| 82 | bool "Little Endian" |
| 83 | select ARCH_LITTLE_ENDIAN |
| 84 | endchoice |
| 85 | endif |
| 86 | # if the arch only supports one endian, just display the setting |
| 87 | if !ARCH_ANY_ENDIAN && ARCH_LITTLE_ENDIAN |
| 88 | comment "Using Little Endian" |
| 89 | endif |
| 90 | if !ARCH_ANY_ENDIAN && ARCH_BIG_ENDIAN |
| 91 | comment "Using Big Endian" |
| 92 | endif |
| 93 | |
| 94 | config ARCH_HAS_NO_MMU |
| 95 | bool |
| 96 | if ARCH_HAS_NO_MMU |
| 97 | comment "Target CPU lacks a memory management unit (MMU)" |
| 98 | endif |
| 99 | |
| 100 | config ARCH_HAS_MMU |
| 101 | bool "Target CPU has a memory management unit (MMU)" |
| 102 | depends on !ARCH_HAS_NO_MMU |
| 103 | default y |
| 104 | help |
| 105 | If your target CPU does not have a memory management unit (MMU), |
| 106 | then answer N here. Normally, Linux runs on systems with an MMU. |
| 107 | If you are building a uClinux system, answer N. |
| 108 | |
| 109 | Most people will answer Y. |
| 110 | |
| 111 | config ARCH_USE_MMU |
| 112 | bool "Do you want to utilize the MMU?" |
| 113 | depends on ARCH_HAS_MMU |
| 114 | default y |
| 115 | help |
| 116 | If your target CPU has a MMU, and you wish to actually utilize it, |
| 117 | then answer Y here. Normal Linux requires an MMU. |
| 118 | |
| 119 | If you're unsure, answer Y. |
| 120 | |
| 121 | config UCLIBC_HAS_FLOATS |
| 122 | bool "Enable floating point number support" |
| 123 | default y |
| 124 | help |
| 125 | This option allows you to entirely omit all floating point number |
| 126 | support from uClibc. This will cause floating point functions like |
| 127 | strtod() to be omitted from uClibc. Other floating point functions, |
| 128 | such as printf() and scanf() will still be included in the library, |
| 129 | but will not contain support for floating point numbers. |
| 130 | |
| 131 | Answering N to this option can reduce the size of uClibc. |
| 132 | Most people will answer Y. |
| 133 | |
| 134 | config UCLIBC_HAS_FPU |
| 135 | bool "Target CPU has a floating point unit (FPU)" |
| 136 | default y |
| 137 | help |
| 138 | If your target CPU does not have a Floating Point Unit (FPU) or a |
| 139 | kernel FPU emulator, but you still wish to support floating point |
| 140 | functions, then uClibc will need to be compiled with soft floating |
| 141 | point support (-msoft-float). If your target CPU does not have an |
| 142 | FPU or an FPU emulator within the Linux kernel, then you should |
| 143 | answer N. |
| 144 | |
| 145 | Most people will answer Y. |
| 146 | |
| 147 | config UCLIBC_HAS_SOFT_FLOAT |
| 148 | bool |
| 149 | depends on UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU |
| 150 | default y |
| 151 | |
| 152 | config DO_C99_MATH |
| 153 | bool "Enable full C99 math library support" |
| 154 | depends on UCLIBC_HAS_FLOATS |
| 155 | default n |
| 156 | help |
| 157 | If you want the uClibc math library to contain the full set C99 |
| 158 | math library features, then answer Y. If you leave this set to |
| 159 | N the math library will contain only the math functions that were |
| 160 | listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard. |
| 161 | Leaving this option set to N will save around 35k on an x86 system. |
| 162 | |
| 163 | If your applications require the newer C99 math library functions, |
| 164 | then answer Y. |
| 165 | |
| 166 | config DO_XSI_MATH |
| 167 | bool "Enable XSI math extensions to the ISO C standard (bessel)" |
| 168 | depends on UCLIBC_HAS_FLOATS |
| 169 | default n |
| 170 | help |
| 171 | X/Open System Interfaces extensions to ISO C math functions |
| 172 | (differential equation functions): |
| 173 | |
| 174 | j0, j1, jn - Bessel functions of the first kind |
| 175 | y0, y1, yn - Bessel functions of the second kind |
| 176 | |
| 177 | config UCLIBC_HAS_FENV |
| 178 | bool "Enable C99 Floating-point environment" |
| 179 | depends on UCLIBC_HAS_FLOATS |
| 180 | default n |
| 181 | help |
| 182 | If you want the uClibc math library to contain the C99 floating |
| 183 | point environment, rounding and exception handling functions then |
| 184 | say Y here. |
| 185 | |
| 186 | NOTE: Supported architectures currently include: |
| 187 | i386 |
| 188 | |
| 189 | config UCLIBC_HAS_LONG_DOUBLE_MATH |
| 190 | bool "Enable long double support" |
| 191 | depends on DO_C99_MATH |
| 192 | depends on TARGET_i386 || TARGET_m68k || TARGET_sparc || TARGET_x86_64 || TARGET_powerpc || TARGET_sh || TARGET_microblaze |
| 193 | default y |
| 194 | help |
| 195 | If you want the uClibc math library to contain the full set of C99 |
| 196 | long double math library features, then answer Y. Don't enable it |
| 197 | for sparc w/ 32bit ABI. |
| 198 | |
| 199 | config KERNEL_HEADERS |
| 200 | string "Linux kernel header location" |
| 201 | default "/usr/include" |
| 202 | help |
| 203 | The kernel source you use to compile with should be the same |
| 204 | as the Linux kernel you run your apps on. uClibc doesn't even |
| 205 | try to achieve binary compatibility across kernel versions. |
| 206 | So don't expect, for example, uClibc compiled with Linux kernel |
| 207 | 2.0.x to implement lchown properly, since 2.0.x can't do that. |
| 208 | Similarly, if you compile uClibc vs Linux 2.4.x kernel headers, |
| 209 | but then run on Linux 2.0.x, lchown will be compiled into uClibc, |
| 210 | but won't work at all. You have been warned. |
| 211 | |
| 212 | config UCLIBC_UCLINUX_BROKEN_MUNMAP |
| 213 | bool |
| 214 | depends on !ARCH_USE_MMU |
| 215 | default y |
| 216 | |
| 217 | config HAVE_DOT_CONFIG |
| 218 | bool |
| 219 | default y |