blob: ec541f45bc6c4479a977d9499f981dfa393f0676 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001#
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#
10if !ARCH_USE_MMU
11choice
12 prompt "Target File Format"
13config UCLIBC_FORMAT_ELF
14 bool "ELF"
15 depends on ARCH_USE_MMU
16config UCLIBC_FORMAT_FDPIC_ELF
17 bool "FDPIC ELF"
18 depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv)
19 select DOPIC
20config UCLIBC_FORMAT_DSBT_ELF
21 bool "DBST ELF"
22 depends on !ARCH_USE_MMU && TARGET_c6x
23 select DOPIC
24config UCLIBC_FORMAT_FLAT
25 bool "STATIC FLAT"
26 depends on !ARCH_USE_MMU
27 select ARCH_HAS_NO_LDSO
28config UCLIBC_FORMAT_FLAT_SEP_DATA
29 bool "STATIC FLAT (sep-data)"
30 depends on !ARCH_USE_MMU
31 select ARCH_HAS_NO_LDSO
32config 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.
39endchoice
40endif
41if ARCH_USE_MMU
42comment "Using ELF file format"
43endif
44
45config 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#
66config ARCH_ANY_ENDIAN
67 bool
68config ARCH_BIG_ENDIAN
69 bool
70config ARCH_LITTLE_ENDIAN
71 bool
72if ARCH_ANY_ENDIAN
73choice
74 prompt "Target Processor Endianness"
75 help
76 This is the endianness you wish to use. Choose either Big
77 Endian, or Little Endian.
78config ARCH_WANTS_BIG_ENDIAN
79 bool "Big Endian"
80 select ARCH_BIG_ENDIAN
81config ARCH_WANTS_LITTLE_ENDIAN
82 bool "Little Endian"
83 select ARCH_LITTLE_ENDIAN
84endchoice
85endif
86# if the arch only supports one endian, just display the setting
87if !ARCH_ANY_ENDIAN && ARCH_LITTLE_ENDIAN
88comment "Using Little Endian"
89endif
90if !ARCH_ANY_ENDIAN && ARCH_BIG_ENDIAN
91comment "Using Big Endian"
92endif
93
94config ARCH_HAS_NO_MMU
95 bool
96if ARCH_HAS_NO_MMU
97comment "Target CPU lacks a memory management unit (MMU)"
98endif
99
100config 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
111config 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
121config 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
134config 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
147config UCLIBC_HAS_SOFT_FLOAT
148 bool
149 depends on UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
150 default y
151
152config 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
166config 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
177config 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
189config 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
199config 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
212config UCLIBC_UCLINUX_BROKEN_MUNMAP
213 bool
214 depends on !ARCH_USE_MMU
215 default y
216
217config HAVE_DOT_CONFIG
218 bool
219 default y