2 # For a description of the syntax of this configuration file,
3 # see extra/config/Kconfig-language.txt
10 menu "General Library Settings"
13 bool "Generate Position Independent Code (PIC)"
17 If you wish to build uClibc with support for shared libraries then
18 answer Y here. If you only want to build uClibc as a static library,
22 bool "Enable support for shared libraries"
26 If you wish to build uClibc with support for shared libraries then
27 answer Y here. If you only want to build uClibc as a static library,
30 config ADD_LIBGCC_FUNCTIONS
31 bool "Add unresolved libgcc symbols to uClibc"
32 depends on HAVE_SHARED
35 If you answer Y here, all unresolved functions provided by the libgcc
36 library that are used by uClibc will be added directly into the
37 uClibc library. If your gcc compiler only provides a static libgcc
38 library, then enabling this option can reduce the size of your
39 binaries by preventing these functions from being staticly linked
40 into every binary. If you have compiled uClibc as PIC code, one
41 potential size effect of this option is that you may end up adding
42 non-PIC libgcc code into your shared uClibc library, resulting in a
43 non shareable text segment (thereby wasting a bunch of ram). If your
44 compiler supports a shared libgcc library, you should certainly leave
45 this option disabled. Regardless, the safest answer is N.
47 config BUILD_UCLIBC_LDSO
48 bool "Compile native shared library loader"
49 depends on HAVE_SHARED
52 uClibc has a native shared library loader for some architectures.
53 If you answer Y here, the uClibc native shared library loader will
54 be built for your target architecture. If this option is available,
55 to you, then you almost certainly want to answer Y.
57 config FORCE_SHAREABLE_TEXT_SEGMENTS
58 bool "Only load shared libraries which can share their text segment"
59 depends on BUILD_UCLIBC_LDSO && UCLIBC_COMPLETELY_PIC && !ADD_LIBGCC_SYMBOLS
62 If you answer Y here, the uClibc native shared library loader will
63 only load shared libraries, which do not need to modify any non-writable
64 segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
65 section (==> objdump). So all your libraries must be compiled with
66 -fPIC or -fpic, and all assembler function must be written as position
67 independent code (PIC).
68 Enabling this option will makes uClibc's shared library loader a
69 little bit smaller and guarantee that no memory will be wasted by badly
70 coded shared libraries.
72 config LDSO_LDD_SUPPORT
73 bool "Native shared library loader 'ldd' support"
74 depends on BUILD_UCLIBC_LDSO
77 Enable this to enable all the code needed to support traditional ldd,
78 which executes the shared library loader to resolve all dependencies
79 and then provide a list of shared libraries that are required for an
80 application to function. Disabling this option will makes uClibc's
81 shared library loader a little bit smaller. Most people will answer Y.
83 config UCLIBC_CTOR_DTOR
84 bool "Support global constructors and destructors"
87 If you wish to build uClibc with support for global constructor
88 (ctor) and global destructor (dtor) support, then answer Y here.
89 When ctor/dtor support is enabled, binaries linked with uClibc must
90 also be linked with crtbegin.o and crtend.o which are provided by gcc
91 (the "*startfile:" and "*endfile:" settings in your gcc specs file
92 may need to be adjusted to include these files). This support will
93 also add a small amount of additional size to each binary compiled vs
94 uClibc. If you will be using uClibc with C++, or if you need the gcc
95 __attribute__((constructor)) and __attribute__((destructor)) to work,
96 then you definitely want to answer Y here. If you don't need ctors
97 or dtors and want your binaries to be as small as possible, then
100 config UCLIBC_PROFILING
101 bool "Support gprof profiling"
104 If you wish to build uClibc with support for application profiling
105 using the gprof tool, then you should enable this feature. Then in
106 addition to building uClibc with profiling support, you will also
107 need to recompile all your shared libraries with the profiling
108 enabled version of uClibc. To add profiling support to your
109 applications, you must compile things using the gcc options
110 "-fprofile-arcs -pg". Then when you run your applications, a
111 gmon.out file will be generated which can then be analyzed by
114 These exist a number of less invasive alternatives that do not
115 require your to specially instrument your application, and recompile
116 and relink everything.
118 Many people have had good results using the combination of Valgrind
119 to generate profiling information and KCachegrind for analysis:
120 http://developer.kde.org/~sewardj/
121 http://kcachegrind.sourceforge.net/
123 The OProfile system-wide profiler is another alternative:
124 http://oprofile.sourceforge.net/
126 Prospect is another alternative based on OProfile:
127 http://prospect.sourceforge.net/
129 And the Linux Trace Toolkit (LTT) is also a fine tool:
130 http://www.opersys.com/LTT/
132 If none of these tools do what you need, you can of course enable
133 this option, rebuild everything, and use 'gprof'. There is both a
134 size and performance penelty to profiling your applications this way,
135 so most people should answer N.
137 config UCLIBC_HAS_THREADS
138 bool "POSIX Threading Support"
141 If you want to compile uClibc with pthread support, then answer Y.
142 This will increase the size of uClibc by adding a bunch of locking
143 to critical data structures, and adding extra code to ensure that
144 functions are properly reentrant.
146 If your applications require pthreads, answer Y.
148 config PTHREADS_DEBUG_SUPPORT
149 bool "Build pthreads debugging support"
151 depends on UCLIBC_HAS_THREADS
153 Say Y here if you wish to be able to debug applications that use
154 uClibc's pthreads library. By enabling this option, a library
155 named libthread_db will be built. This library will be dlopen()'d
156 by gdb and will allow gdb to debug the threads in your application.
158 IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
159 you must compile gdb with uClibc in order for pthread debugging to
162 If you are doing development and want to debug applications using
163 uClibc's pthread library, answer Y. Otherwise, answer N.
165 config UCLIBC_HAS_LFS
166 bool "Large File Support"
169 If you wish to build uClibc with support for accessing large files
170 (i.e. files greater then 2 GiB) then answer Y. Do not enable this
171 if you are using an older Linux kernel (2.0.x) that lacks large file
172 support. Enabling this option will increase the size of uClibc.
175 prompt "Malloc Implementation"
176 default MALLOC_930716
178 "malloc" use mmap for all allocations and so works very well on MMU-less
179 systems that do not support the brk() system call. It is pretty smart
180 about reusing already allocated memory, and minimizing memory wastage.
182 "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
183 for all memory allocations. This makes it very fast. It is also pretty
184 smart about reusing already allocated memory, and minimizing memory wastage.
185 Because this uses brk() it will not work on uClinux MMU-less systems.
187 If unsure, answer "malloc".
194 depends on UCLIBC_HAS_MMU
198 config MALLOC_GLIBC_COMPAT
199 bool "Malloc returns live pointer for malloc(0)"
202 The behavior of malloc(0) is listed as implementation-defined by
203 SuSv3. Glibc returns a valid pointer to something, while uClibc
204 normally return a NULL. I personally feel glibc's behavior is
205 not particularly safe, and allows buggy applications to hide very
208 When this option is enabled, uClibc will act just like glibc, and
209 return a live pointer when someone calls malloc(0). This pointer
210 provides a malloc'ed area with a size of 1 byte. This feature is
211 mostly useful when dealing with applications using autoconf's broken
212 AC_FUNC_MALLOC macro (which redefines malloc as rpl_malloc if it
213 does not detect glibc style returning-a-valid-pointer-for-malloc(0)
214 behavior). Most people can safely answer N.
216 config UCLIBC_DYNAMIC_ATEXIT
217 bool "Dynamic atexit() Support"
220 When this option is enabled, uClibc will support an infinite number,
221 of atexit() and on_exit() functions, limited only by your available
222 memory. This can be important when uClibc is used with C++, since
223 global destructors are implemented via atexit(), and it is quite
224 possible to exceed the default number when this option is disabled.
225 Enabling this option adds a few bytes, and more significantly makes
226 atexit and on_exit depend on malloc, which can be bad when compiling
229 Unless you use uClibc with C++, you should probably answer N.
233 bool "Shadow Password Support"
236 Answer N if you do not need shadow password support.
237 Most people will answer Y.
239 config UNIX98PTY_ONLY
240 bool "Support only Unix 98 PTYs"
243 If you want to support only Unix 98 PTYs enable this. Some older
244 applications may need this disabled. For most current programs,
245 you can generally answer Y.
248 bool "Assume that /dev/pts is a devpts or devfs file system"
251 Enable this if /dev/pts is on a devpts or devfs filesystem. Both
252 these filesystems automatically manage permissions on the /dev/pts
253 devices. You may need to mount your devpts or devfs filesystem on
254 /dev/pts for this to work.
256 Most people should answer Y.
258 config UCLIBC_HAS_TM_EXTENSIONS
259 bool "Support 'struct tm' timezone extension fields"
262 Enabling this option adds fields to 'struct tm' in time.h for
263 tracking the number of seconds east of UTC, and an abbreviation for
264 the current timezone. These fields are not specified by the SuSv3
265 standard, but they are commonly used in both GNU and BSD application
268 To strictly follow the SuSv3 standard, leave this disabled.
269 Most people will probably want to answer Y.
271 config UCLIBC_HAS_TZ_CACHING
272 bool "Enable caching of the last valid timezone 'TZ' string"
275 Answer Y to enable caching of the last valid 'TZ' string describing
276 the timezone setting. This allows a quick string compare to avoid
277 repeated parsing of unchanged 'TZ' strings when tzset() is called.
279 Most people will answer Y.
281 config UCLIBC_HAS_TZ_FILE
282 bool "Enable '/etc/TZ' file support to set a default timezone (uClibc-specific)"
285 Answer Y to enable the setting of a default timezone for uClibc.
287 Ordinarily, uClibc gets the timezone information exclusively from the
288 'TZ' environment variable. In particular, there is no support for
289 the zoneinfo directory tree or the /etc/timezone file used by glibc.
291 With this option enabled, uClibc will use the value stored in the
292 file '/etc/TZ' (default path) to obtain timezone information if the
293 'TZ' environment variable is missing or has an invalid value. The
294 file consists of a single line (newline required) of text describing
295 the timezone in the format specified for the TZ environment variable.
297 Simply doing 'echo CST6CDT > /etc/TZ' is enough to create a valid file.
299 http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html
300 for details on valid settings of 'TZ'.
302 Most people will answer Y.
304 config UCLIBC_HAS_TZ_FILE_READ_MANY
305 bool "Repeatedly read the '/etc/TZ' file"
306 depends on UCLIBC_HAS_TZ_FILE
309 Answer Y to enable repeated reading of the '/etc/TZ' file even after
310 a valid value has been read. This incurs the overhead of an open/read/close
311 for each tzset() call (explicit or implied). However, setting this
312 will allows applications to update their timezone information if the contents
315 Most people will answer Y.
317 config UCLIBC_TZ_FILE_PATH
318 string "Path to the 'TZ' file for setting the global timezone"
319 depends on UCLIBC_HAS_TZ_FILE
322 This is the path to the 'TZ' file.
324 Most people will use the default of '/etc/TZ'.
328 menu "Networking Support"
330 config UCLIBC_HAS_IPV6
331 bool "IP version 6 Support"
334 If you want to include support for the next version of the Internet
335 Protocol (IP version 6) then answer Y.
337 Most people should answer N.
339 config UCLIBC_HAS_RPC
340 bool "Remote Procedure Call (RPC) support"
343 If you want to include RPC support, enable this. RPC is rarely used
344 for anything except for the NFS filesystem. Unless you plan to use NFS,
345 you can probably leave this set to N and save some space. If you need
346 to use NFS then you should answer Y.
348 config UCLIBC_HAS_FULL_RPC
349 bool "Full RPC support"
350 depends on UCLIBC_HAS_RPC
351 default y if !HAVE_SHARED
353 Normally we enable just enough RPC support for things like rshd and
354 nfs mounts to work. If you find you need the rest of the RPC stuff,
355 then enable this option. Most people can safely answer N.
360 menu "String and Stdio Support"
362 config UCLIBC_HAS_CTYPE_TABLES
363 bool "Use Table Versions Of 'ctype.h' Functions."
366 Answer Y to use table versions of the 'ctype.h' functions.
367 While the non-table versions are often smaller when building
368 staticly linked apps, they work only in stub locale mode.
370 Most people will answer Y.
372 config UCLIBC_HAS_CTYPE_SIGNED
373 bool "Support Signed Characters In 'ctype.h' Functions."
374 depends UCLIBC_HAS_CTYPE_TABLES
377 Answer Y to enable support for passing signed char values to
378 the 'ctype.h' functions. ANSI/ISO C99 and SUSv3 specify that
379 these functions are only defined for unsigned char values and
380 EOF. However, glibc allows negative signed char values as well
381 in order to support 'broken old programs'.
383 Most people will answer Y.
386 prompt "ctype argument checking"
387 depends UCLIBC_HAS_CTYPE_TABLES
388 default UCLIBC_HAS_CTYPE_UNSAFE
390 Please select the invalid arg behavior you want for the 'ctype' functions.
392 The 'ctype' functions are now implemented using table lookups, with
393 the arg being the index. This can result in incorrect memory accesses
394 or even segfaults for args outside of the allowed range.
396 NOTE: This only affects the 'ctype' _functions_. It does not affect
397 the macro implementations.
399 config UCLIBC_HAS_CTYPE_UNSAFE
400 bool "Do not check -- unsafe"
402 config UCLIBC_HAS_CTYPE_CHECKED
403 bool "Detect and handle appropriately"
405 config UCLIBC_HAS_CTYPE_ENFORCED
406 bool "Issue a diagnostic and abort()"
411 config UCLIBC_HAS_WCHAR
412 bool "Wide Character Support"
413 select UCLIBC_HAS_CTYPE_TABLES
416 Answer Y to enable wide character support. This will make uClibc
417 much larger. It is also currently required for locale support.
419 Most people will answer N.
421 config UCLIBC_HAS_LOCALE
422 bool "Locale Support (experimental/incomplete)"
423 select UCLIBC_HAS_WCHAR
426 Answer Y to enable locale support. This will make uClibc much
427 bigger. uClibc's locale support is still under development.
429 Most people will wisely answer N.
431 config UCLIBC_HAS_XLOCALE
432 bool "Extended Locale Support (experimental/incomplete)"
433 depends on UCLIBC_HAS_LOCALE
436 Answer Y to enable extended locale support similar to that provided
437 by glibc. This is primarily intended to support libstd++ functionality.
438 However, it also allows thread-specific locale selection via uselocale().
440 Most people will answer N.
442 config UCLIBC_HAS_HEXADECIMAL_FLOATS
443 bool "Support hexadecimal float notation"
444 depends UCLIBC_HAS_CTYPE_TABLES
445 depends on UCLIBC_HAS_FLOATS
448 Answer Y to enable support for hexadecimal float notation in the
449 (wchar and) char string to floating point conversion functions, as
450 well as support for the %a and %A conversion specifiers in the
451 *printf() and *scanf() functions.
453 Most people will answer N.
455 config UCLIBC_HAS_GLIBC_DIGIT_GROUPING
456 bool "Support glibc's \"'\" flag for allowing locale-specific digit grouping"
457 depends on UCLIBC_HAS_LOCALE
458 depends on UCLIBC_HAS_FLOATS
461 Answer Y to enable support for glibc's \"'\" flag for allowing locale-specific
462 digit grouping in base 10 integer conversions and appropriate floating point
463 conversions in the *printf() and *scanf() functions.
465 Most people will answer N.
467 config UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING
468 bool "Do not require digit grouping when the \"'\" flag is specified"
469 depends on UCLIBC_HAS_GLIBC_DIGIT_GROUPING
472 Answer Y to make digit grouping optional when the \"'\" flag is specified.
473 This is the standard glibc behavior. If the initial string of digits
474 exceeds the maximum group number, the input will be treated as a normal
477 Most people will answer N.
479 config UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
480 bool "Support glibc's register_printf_function() (glibc-compat)"
481 depends on !USE_OLD_VFPRINTF
484 Answer Y to support glibc's register_printf_function() to allow an
485 application to add its own printf conversion specifiers.
487 NOTE: This implementation limits the number or registered specifiers to 10.
488 NOTE: This implementation requires new conversion specifiers to be ASCII
489 characters (0-0x7f). This is to avoid problems with processing
490 format strings in locales with different multibyte conversions.
492 Most people will answer N.
494 config USE_OLD_VFPRINTF
495 bool "Use the old vfprintf implementation"
496 depends on !UCLIBC_HAS_WCHAR
499 Set to true to use the old vfprintf instead of the new. This is roughly
500 C89 compliant with some extensions, and is much smaller. However, it does
501 not support wide chars, positional args, or glibc custom printf specifiers.
503 Most people will answer N.
505 config UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS
506 int "Maximum number of positional args. Either 0 or >= 9."
507 depends on !USE_OLD_VFPRINTF
510 Set the maximum number of positional args supported by the printf/scanf
511 functions. The Single Unix Specification Version 3 requires a minimum
512 value of 9. Setting this to a value lower than 9 will disable positional
513 arg support and cause the NL_ARGMAX macro in limits.h to be #undef'd.
514 WARNING! The workspace to support positional args is currently allocated
515 on the stack. You probably don't want to set this to too high a value.
517 Most people will answer 9.
520 config UCLIBC_HAS_SCANF_GLIBC_A_FLAG
521 bool "Support glibc's 'a' flag for scanf string conversions"
524 NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!!
526 Answer Y to enable support for glibc's 'a' flag for the scanf string
527 conversions '%s', '%[', '%ls', '%l[', and '%S'. This is used to
528 auto-allocate sufficient memory to hold the data retrieved.
530 Most people will answer N.
533 prompt "Stdio buffer size"
534 default UCLIBC_HAS_STDIO_BUFSIZ_256
536 Please select a value for BUFSIZ. This will be used by the
537 stdio subsystem as the default buffer size for a file, and
538 affects fopen(), setvbuf(), etc.
540 NOTE: Setting this to 'none' will disable buffering completely.
541 However, BUFSIZ will still be defined in stdio.h as 256 because
542 many applications use this value.
544 config UCLIBC_HAS_STDIO_BUFSIZ_NONE
545 bool "none (WARNING - BUFSIZ will be 256 in stdio.h)"
546 depends !UCLIBC_HAS_WCHAR
548 config UCLIBC_HAS_STDIO_BUFSIZ_256
549 bool "256 (minimum ANSI/ISO C99 value)"
551 config UCLIBC_HAS_STDIO_BUFSIZ_512
554 config UCLIBC_HAS_STDIO_BUFSIZ_1024
557 config UCLIBC_HAS_STDIO_BUFSIZ_2048
560 config UCLIBC_HAS_STDIO_BUFSIZ_4096
563 config UCLIBC_HAS_STDIO_BUFSIZ_8192
566 # If you add more choices, you will need to update uClibc_stdio.h.
571 prompt "Stdio builtin buffer size (uClibc-specific)"
572 depends !UCLIBC_HAS_STDIO_BUFSIZ_NONE
573 default UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE
575 When a FILE is created with fopen(), an attempt is made to allocate
576 a BUFSIZ buffer for it. If the allocation fails, fopen() will still
577 succeed but the FILE will be unbuffered.
579 This option adds a small amount of space to each FILE to act as an
580 emergeny buffer in the event of a buffer allocation failure.
582 Most people will answer None.
584 config UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE
587 config UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4
590 config UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8
593 # If you add more choices, you will need to update uClibc_stdio.h.
597 config UCLIBC_HAS_STDIO_GETC_MACRO
598 bool "Provide a macro version of getc()"
599 depends !UCLIBC_HAS_STDIO_BUFSIZ_NONE
602 Provide a macro version of getc().
604 Most people will answer Y.
606 config UCLIBC_HAS_STDIO_PUTC_MACRO
607 bool "Provide a macro version of putc()"
608 depends !UCLIBC_HAS_STDIO_BUFSIZ_NONE
611 Provide a macro version of putc().
613 Most people will answer Y.
615 config UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION
616 bool "Support auto-r/w transition"
619 Answer Y to enable the stdio subsystem to automaticly transition
620 between reading and writing. This relaxes the ANSI/ISO C99 requirement:
622 When a file is opened with update mode ('+' as the second or third character
623 in the list of mode argument values), both input and output may be performed
624 on the associated stream. However, output shall not be directly followed by
625 input without an intervening call to the fflush function or to a file
626 positioning function (fseek, fsetpos, or rewind), and input shall not be
627 directly followed by output without an intervening call to a file positioning
628 function, unless the input operation encounters endÂofÂfile.
630 Most people will answer Y.
632 config UCLIBC_HAS_FOPEN_LARGEFILE_MODE
633 bool "Support an fopen() 'F' flag for large file mode (uClibc-specific)"
634 depends on UCLIBC_HAS_LFS
637 Answer Y to enable a uClibc-specific extension to allow passing an
638 additional 'F' flag in the mode string for fopen() to specify that
639 the file should be open()ed with the O_LARGEFILE flag set.
641 Most people will answer N.
643 config UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
644 bool "Support an fopen() 'x' flag for exclusive mode (glibc-compat)"
647 Answer Y to support a glibc extension to allow passing
648 additional 'x' flag in the mode string for fopen() to specify that
649 the file should be open()ed with the O_EXCL flag set.
651 Most people will answer N.
653 config UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
654 bool "Support fmemopen(), open_memstream(), and fopencookie() (glibc-compat)"
657 Answer Y to support the glibc 'custom stream' extension functions
658 fmemopen(), open_memstream(), and fopencookie().
660 NOTE: There are some minor differences regarding seeking behavior.
662 Most people will answer N.
664 config UCLIBC_HAS_PRINTF_M_SPEC
665 bool "Support the '%m' specifier in printf format strings (glibc-compat)"
668 Answer Y to support a glibc extension to interpret '%m' in printf
669 format strings as an instruction to output the error message string
670 (as generated by strerror) corresponding to the current value of 'errno'.
672 Most people will answer N.
674 config UCLIBC_HAS_ERRNO_MESSAGES
675 bool "Include the errno message text in the library"
678 Answer Y if you want to include the errno message text in the
679 library. This adds about 3K to the library, but enables strerror()
680 to generate text other than 'Unknown error <number>'.
682 Most people will answer Y.
684 config UCLIBC_HAS_SYS_ERRLIST
685 bool "Support sys_errlist[] (obsolete-compat)"
686 depends on UCLIBC_HAS_ERRNO_MESSAGES
689 Answer Y if you want to support the obsolete sys_errlist[].
690 This adds about 0.5k to the library, except for the mips
691 arch where it adds over 4K.
693 WARNING! In the future, support for sys_errlist[] may be unavailable
694 in at least some configurations. In fact, it may be removed altogether.
696 Most people will answer N.
698 config UCLIBC_HAS_SIGNUM_MESSAGES
699 bool "Include the signum message text in the library"
702 Answer Y if you want to include the signum message text in the
703 library. This adds about 0.5K to the library, but enables strsignal()
704 to generate text other than 'Unknown signal <number>'.
706 Most people will answer Y.
708 config UCLIBC_HAS_SYS_SIGLIST
709 bool "Support sys_siglist[] (bsd-compat)"
710 depends on UCLIBC_HAS_SIGNUM_MESSAGES
713 Answer Y if you want to support sys_siglist[].
715 WARNING! In the future, support for sys_siglist[] may be unavailable
716 in at least some configurations. In fact, it may be removed altogether.
718 Most people will answer N.
720 config UCLIBC_HAS_GETTEXT_AWARENESS
721 bool "Include gettext awareness"
722 depends on UCLIBC_HAS_LOCALE
725 NOTE!!! Not yet integrated with strerror and strsignal. NOTE!!!
727 Answer Y if you want to include weak stub gettext support and
728 make the *strerror*() and strsignal() functions gettext-aware.
730 Currently, to get functional gettext functionality you will need
733 Most people will answer N.
735 config UCLIBC_HAS_GNU_GETOPT
736 bool "Support gnu getopt"
739 Answer Y if you want to include full gnu getopt() instead of a
740 (much smaller) SUSv3 compatible getopt().
742 Most people will answer Y.
749 config UCLIBC_HAS_REGEX
750 bool "Regular Expression Support"
753 POSIX regular expression code is really big -- 27k all by itself.
754 If you don't use regular expressions, turn this off and save space.
755 Of course, if you only staticly link, leave this on, since it will
756 only be included in your apps if you use regular expressions.
758 config UCLIBC_HAS_WORDEXP
759 bool "Support the wordexp() interface"
762 The SuSv3 wordexp() interface performs word expansions per the Shell
763 and Utilities volume of IEEE Std 1003.1-2001, Section 2.6. It is
764 intended for use by applications that want to implement all of the
765 standard Bourne shell expansions on input data.
767 This interface is rarely used, and very large. Unless you have a
768 pressing need for wordexp(), you should probably answer N.
770 config UCLIBC_HAS_FTW
771 bool "Support the ftw() and nftw() interfaces"
774 The SuSv3 ftw() and nftw() interfaces are used to recursively descend
775 directory paths while repeatedly calling a function.
777 This interface is rarely used, and adds around 4.5k. Unless you have
778 a pressing need for ftw() or nftw(), you should probably answer N.
780 config UCLIBC_HAS_GLOB
781 bool "Support the glob() interface"
785 The glob interface is somewhat large (weighing in at about 4k). It
786 is used fairly often, but is an option since people wanting to go for
787 absolute minimum size may wish to omit it.
789 Most people will answer Y.
796 menu "Library Installation Options"
798 config SHARED_LIB_LOADER_PATH
799 string "Shared library loader path"
800 depends on BUILD_UCLIBC_LDSO
801 default "$(DEVEL_PREFIX)/lib"
803 When using shared libraries, this path is the location where the
804 shared library will be invoked. This value will be compiled into
805 every binary compiled with uClibc.
808 If you do not have a shared library loader with the correct name
809 sitting in the directory this points to, your binaries will not
813 string "System shared library loader"
814 depends on HAVE_SHARED && !BUILD_UCLIBC_LDSO
815 default "/lib/ld-linux.so.2"
817 If you are using shared libraries, but do not want/have a native
818 uClibc shared library loader, please specify the name of your
819 target system's shared library loader here...
822 If you do not have a shared library loader with the correct name
823 sitting in the directory this points to, your binaries will not
827 string "uClibc development environment directory"
828 default "/usr/$(TARGET_ARCH)-linux-uclibc"
830 DEVEL_PREFIX is the directory into which the uClibc development
831 environment will be installed. The result will look something
834 lib/ <contains all runtime and static libs>
835 include/ <Where all the header files go>
836 This value is used by the 'make install' Makefile target. Since this
837 directory is compiled into the uclibc cross compiler spoofer, you
838 have to recompile uClibc if you change this value...
840 config SYSTEM_DEVEL_PREFIX
841 string "uClibc development environment system directory"
842 default "$(DEVEL_PREFIX)"
844 SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
845 bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
846 the 'make install' target, and is not compiled into anything. This
847 defaults to $(DEVEL_PREFIX), but makers of .rpms and .debs may want
848 to set this to "/usr" instead.
850 config DEVEL_TOOL_PREFIX
851 string "uClibc development environment tool directory"
852 default "$(DEVEL_PREFIX)/usr"
854 DEVEL_TOOL_PREFIX is the directory prefix used when installing
855 bin/gcc, bin/ld, etc. This is only used by the 'make install'
856 target, and is not compiled into anything. This defaults to
857 $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
858 set this to something else.
862 menu "uClibc development/debugging options"
865 bool "Build uClibc with debugging symbols"
868 Say Y here if you wish to compile uClibc with debugging symbols.
869 This will allow you to use a debugger to examine uClibc internals
870 while applications are running. This increases the size of the
871 library considerably and should only be used when doing development.
872 If you are doing development and want to debug uClibc, answer Y.
877 bool "Build uClibc with run-time assertion testing"
880 Say Y here to include runtime assertion tests.
881 This enables runtime assertion testing in some code, which can
882 increase the size of the library and incur runtime overhead.
883 If you say N, then this testing will be disabled.
885 config SUPPORT_LD_DEBUG
886 bool "Build the shared library loader with debugging support"
887 depends on BUILD_UCLIBC_LDSO
890 Answer Y here to enable all the extra code needed to debug the uClibc
891 native shared library loader. The level of debugging noise that is
892 generated depends on the LD_DEBUG environment variable... Just set
893 LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
894 debug your application. Diagnostic messages will then be printed to
897 For now these debugging tokens are available:
898 detail provide more information for some options
899 move display copy processing
900 symbols display symbol table processing
901 reloc display relocation processing; detail shows the relocation patch
902 nofixups never fixes up jump relocations
903 bindings displays the resolve processing (function calls); detail shows the relocation patch
904 all Enable everything!
906 The additional environment variable:
908 redirects the diagnostics to an output file created using
909 the specified name and the process id as a suffix.
911 An excellent start is simply:
912 $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
913 or to log everything to a file named 'logfile', try this
914 $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
916 If you are doing development and want to debug uClibc's shared library
917 loader, answer Y. Mere mortals answer N.
919 config SUPPORT_LD_DEBUG_EARLY
920 bool "Build the shared library loader with early debugging support"
921 depends on BUILD_UCLIBC_LDSO
924 Answer Y here to if you find the uClibc shared library loader is
925 crashing or otherwise not working very early on. This is typical
926 only when starting a new port when you haven't figured out how to
927 properly get the values for argc, argv, environ, etc. This method
928 allows a degree of visibility into the very early shared library
929 loader initialization process. If you are doing development and want
930 to debug the uClibc shared library loader early initialization,
931 answer Y. Mere mortals answer N.
933 config UCLIBC_MALLOC_DEBUGGING
934 bool "Build malloc with debugging support"
938 Answer Y here to compile extra debugging support code into malloc.
939 Malloc debugging output may then be enabled at runtime using
940 the MALLOC_DEBUG environment variable. Because this increases
941 the size of malloc appreciably (due to strings etc), you
942 should say N unless you need to debug a malloc problem.
944 config UCLIBC_MJN3_ONLY
945 bool "Manuel's hidden warnings"
948 Answer Y here to see all Manuel's personal notes, warnings, and todos.
950 Most people will answer N.