rk: add and fix PIE support
[firefly-linux-kernel-4.4.55.git] / lib / Kconfig
1 #
2 # Library configuration
3 #
4
5 config BINARY_PRINTF
6         def_bool n
7
8 menu "Library routines"
9
10 config RAID6_PQ
11         tristate
12
13 config BITREVERSE
14         tristate
15
16 config RATIONAL
17         boolean
18
19 config GENERIC_STRNCPY_FROM_USER
20         bool
21
22 config GENERIC_STRNLEN_USER
23         bool
24
25 config GENERIC_FIND_FIRST_BIT
26         bool
27
28 config NO_GENERIC_PCI_IOPORT_MAP
29         bool
30
31 config GENERIC_PCI_IOMAP
32         bool
33
34 config GENERIC_IOMAP
35         bool
36         select GENERIC_PCI_IOMAP
37
38 config GENERIC_IO
39         boolean
40         default n
41
42 config STMP_DEVICE
43         bool
44
45 config PERCPU_RWSEM
46         boolean
47
48 config CRC_CCITT
49         tristate "CRC-CCITT functions"
50         help
51           This option is provided for the case where no in-kernel-tree
52           modules require CRC-CCITT functions, but a module built outside
53           the kernel tree does. Such modules that use library CRC-CCITT
54           functions require M here.
55
56 config CRC16
57         tristate "CRC16 functions"
58         help
59           This option is provided for the case where no in-kernel-tree
60           modules require CRC16 functions, but a module built outside
61           the kernel tree does. Such modules that use library CRC16
62           functions require M here.
63
64 config CRC_T10DIF
65         tristate "CRC calculation for the T10 Data Integrity Field"
66         help
67           This option is only needed if a module that's not in the
68           kernel tree needs to calculate CRC checks for use with the
69           SCSI data integrity subsystem.
70
71 config CRC_ITU_T
72         tristate "CRC ITU-T V.41 functions"
73         help
74           This option is provided for the case where no in-kernel-tree
75           modules require CRC ITU-T V.41 functions, but a module built outside
76           the kernel tree does. Such modules that use library CRC ITU-T V.41
77           functions require M here.
78
79 config CRC32
80         tristate "CRC32/CRC32c functions"
81         default y
82         select BITREVERSE
83         help
84           This option is provided for the case where no in-kernel-tree
85           modules require CRC32/CRC32c functions, but a module built outside
86           the kernel tree does. Such modules that use library CRC32/CRC32c
87           functions require M here.
88
89 config CRC32_SELFTEST
90         bool "CRC32 perform self test on init"
91         default n
92         depends on CRC32
93         help
94           This option enables the CRC32 library functions to perform a
95           self test on initialization. The self test computes crc32_le
96           and crc32_be over byte strings with random alignment and length
97           and computes the total elapsed time and number of bytes processed.
98
99 choice
100         prompt "CRC32 implementation"
101         depends on CRC32
102         default CRC32_SLICEBY8
103         help
104           This option allows a kernel builder to override the default choice
105           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
106           know that you need one of the others.
107
108 config CRC32_SLICEBY8
109         bool "Slice by 8 bytes"
110         help
111           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
112           This is the fastest algorithm, but comes with a 8KiB lookup table.
113           Most modern processors have enough cache to hold this table without
114           thrashing the cache.
115
116           This is the default implementation choice.  Choose this one unless
117           you have a good reason not to.
118
119 config CRC32_SLICEBY4
120         bool "Slice by 4 bytes"
121         help
122           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
123           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
124           table.
125
126           Only choose this option if you know what you are doing.
127
128 config CRC32_SARWATE
129         bool "Sarwate's Algorithm (one byte at a time)"
130         help
131           Calculate checksum a byte at a time using Sarwate's algorithm.  This
132           is not particularly fast, but has a small 256 byte lookup table.
133
134           Only choose this option if you know what you are doing.
135
136 config CRC32_BIT
137         bool "Classic Algorithm (one bit at a time)"
138         help
139           Calculate checksum one bit at a time.  This is VERY slow, but has
140           no lookup table.  This is provided as a debugging option.
141
142           Only choose this option if you are debugging crc32.
143
144 endchoice
145
146 config CRC7
147         tristate "CRC7 functions"
148         help
149           This option is provided for the case where no in-kernel-tree
150           modules require CRC7 functions, but a module built outside
151           the kernel tree does. Such modules that use library CRC7
152           functions require M here.
153
154 config LIBCRC32C
155         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
156         select CRYPTO
157         select CRYPTO_CRC32C
158         help
159           This option is provided for the case where no in-kernel-tree
160           modules require CRC32c functions, but a module built outside the
161           kernel tree does. Such modules that use library CRC32c functions
162           require M here.  See Castagnoli93.
163           Module will be libcrc32c.
164
165 config CRC8
166         tristate "CRC8 function"
167         help
168           This option provides CRC8 function. Drivers may select this
169           when they need to do cyclic redundancy check according CRC8
170           algorithm. Module will be called crc8.
171
172 config AUDIT_GENERIC
173         bool
174         depends on AUDIT && !AUDIT_ARCH
175         default y
176
177 #
178 # compression support is select'ed if needed
179 #
180 config ZLIB_INFLATE
181         tristate
182
183 config ZLIB_DEFLATE
184         tristate
185
186 config LZO_COMPRESS
187         tristate
188
189 config LZO_DECOMPRESS
190         tristate
191
192 source "lib/xz/Kconfig"
193
194 #
195 # These all provide a common interface (hence the apparent duplication with
196 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
197 #
198 config DECOMPRESS_GZIP
199         select ZLIB_INFLATE
200         tristate
201
202 config DECOMPRESS_BZIP2
203         tristate
204
205 config DECOMPRESS_LZMA
206         tristate
207
208 config DECOMPRESS_XZ
209         select XZ_DEC
210         tristate
211
212 config DECOMPRESS_LZO
213         select LZO_DECOMPRESS
214         tristate
215
216 #
217 # Generic allocator support is selected if needed
218 #
219 config GENERIC_ALLOCATOR
220         boolean
221
222 #
223 # reed solomon support is select'ed if needed
224 #
225 config REED_SOLOMON
226         tristate
227         
228 config REED_SOLOMON_ENC8
229         boolean
230
231 config REED_SOLOMON_DEC8
232         boolean
233
234 config REED_SOLOMON_ENC16
235         boolean
236
237 config REED_SOLOMON_DEC16
238         boolean
239
240 #
241 # BCH support is selected if needed
242 #
243 config BCH
244         tristate
245
246 config BCH_CONST_PARAMS
247         boolean
248         help
249           Drivers may select this option to force specific constant
250           values for parameters 'm' (Galois field order) and 't'
251           (error correction capability). Those specific values must
252           be set by declaring default values for symbols BCH_CONST_M
253           and BCH_CONST_T.
254           Doing so will enable extra compiler optimizations,
255           improving encoding and decoding performance up to 2x for
256           usual (m,t) values (typically such that m*t < 200).
257           When this option is selected, the BCH library supports
258           only a single (m,t) configuration. This is mainly useful
259           for NAND flash board drivers requiring known, fixed BCH
260           parameters.
261
262 config BCH_CONST_M
263         int
264         range 5 15
265         help
266           Constant value for Galois field order 'm'. If 'k' is the
267           number of data bits to protect, 'm' should be chosen such
268           that (k + m*t) <= 2**m - 1.
269           Drivers should declare a default value for this symbol if
270           they select option BCH_CONST_PARAMS.
271
272 config BCH_CONST_T
273         int
274         help
275           Constant value for error correction capability in bits 't'.
276           Drivers should declare a default value for this symbol if
277           they select option BCH_CONST_PARAMS.
278
279 #
280 # Textsearch support is select'ed if needed
281 #
282 config TEXTSEARCH
283         boolean
284
285 config TEXTSEARCH_KMP
286         tristate
287
288 config TEXTSEARCH_BM
289         tristate
290
291 config TEXTSEARCH_FSM
292         tristate
293
294 config BTREE
295         boolean
296
297 config HAS_IOMEM
298         boolean
299         depends on !NO_IOMEM
300         select GENERIC_IO
301         default y
302
303 config HAS_IOPORT
304         boolean
305         depends on HAS_IOMEM && !NO_IOPORT
306         default y
307
308 config HAS_DMA
309         boolean
310         depends on !NO_DMA
311         default y
312
313 config CHECK_SIGNATURE
314         bool
315
316 config CPUMASK_OFFSTACK
317         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
318         help
319           Use dynamic allocation for cpumask_var_t, instead of putting
320           them on the stack.  This is a bit more expensive, but avoids
321           stack overflow.
322
323 config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
324        bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
325        depends on BROKEN
326
327 config CPU_RMAP
328         bool
329         depends on SMP
330
331 config DQL
332         bool
333
334 #
335 # Netlink attribute parsing support is select'ed if needed
336 #
337 config NLATTR
338         bool
339
340 config HAVE_PIE
341         bool
342         help
343           See Documentation/pie.txt for details.
344
345 config PIE
346         bool "Embedded position independant executables"
347         depends on HAVE_PIE
348         select GENERIC_ALLOCATOR
349         help
350           This option adds support for embedding position indepentant (PIE)
351           executables into the kernel. The PIEs can then be copied into
352           genalloc regions such as SRAM and executed. Some platforms require
353           this for suspend/resume support.
354
355 #
356 # Generic 64-bit atomic support is selected if needed
357 #
358 config GENERIC_ATOMIC64
359        bool
360
361 config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
362         def_bool y if GENERIC_ATOMIC64
363
364 config LRU_CACHE
365         tristate
366
367 config AVERAGE
368         bool "Averaging functions"
369         help
370           This option is provided for the case where no in-kernel-tree
371           modules require averaging functions, but a module built outside
372           the kernel tree does. Such modules that use library averaging
373           functions require Y here.
374
375           If unsure, say N.
376
377 config CLZ_TAB
378         bool
379
380 config CORDIC
381         tristate "CORDIC algorithm"
382         help
383           This option provides an implementation of the CORDIC algorithm;
384           calculations are in fixed point. Module will be called cordic.
385
386 config DDR
387         bool "JEDEC DDR data"
388         help
389           Data from JEDEC specs for DDR SDRAM memories,
390           particularly the AC timing parameters and addressing
391           information. This data is useful for drivers handling
392           DDR SDRAM controllers.
393
394 config MPILIB
395         tristate
396         select CLZ_TAB
397         help
398           Multiprecision maths library from GnuPG.
399           It is used to implement RSA digital signature verification,
400           which is used by IMA/EVM digital signature extension.
401
402 config SIGNATURE
403         tristate
404         depends on KEYS && CRYPTO
405         select CRYPTO_SHA1
406         select MPILIB
407         help
408           Digital signature verification. Currently only RSA is supported.
409           Implementation is done using GnuPG MPI library
410
411 #
412 # libfdt files, only selected if needed.
413 #
414 config LIBFDT
415         bool
416
417 config OID_REGISTRY
418         tristate
419         help
420           Enable fast lookup object identifier registry.
421
422 config UCS2_STRING
423         tristate
424
425 endmenu