1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153 |
- #
- # For a description of the syntax of this configuration file,
- # see extra/config/Kconfig-language.txt
- #
- mainmenu "uClibc C Library Configuration"
- choice
- prompt "Target Architecture"
- default TARGET_i386
- help
- Stuff
- config TARGET_alpha
- bool "alpha"
- config TARGET_arm
- bool "arm"
- config TARGET_cris
- bool "cris"
- config TARGET_e1
- bool "e1"
- config TARGET_h8300
- bool "h8300"
- config TARGET_i386
- bool "i386"
- config TARGET_i960
- bool "i960"
- config TARGET_m68k
- bool "m68k"
- config TARGET_microblaze
- bool "microblaze"
- config TARGET_mips
- bool "mips"
- config TARGET_powerpc
- bool "powerpc"
- config TARGET_sh
- bool "SuperH"
- config TARGET_sparc
- bool "sparc"
- config TARGET_v850
- bool "v850"
- endchoice
- menu "Target Architecture Features and Options"
- if TARGET_alpha
- source "extra/Configs/Config.alpha"
- endif
- if TARGET_arm
- source "extra/Configs/Config.arm"
- endif
- if TARGET_cris
- source "extra/Configs/Config.cris"
- endif
- if TARGET_e1
- source "extra/Configs/Config.e1"
- endif
- if TARGET_h8300
- source "extra/Configs/Config.h8300"
- endif
- if TARGET_i386
- source "extra/Configs/Config.i386"
- endif
- if TARGET_i960
- source "extra/Configs/Config.i960"
- endif
- if TARGET_m68k
- source "extra/Configs/Config.m68k"
- endif
- if TARGET_microblaze
- source "extra/Configs/Config.microblaze"
- endif
- if TARGET_mips
- source "extra/Configs/Config.mips"
- endif
- if TARGET_powerpc
- source "extra/Configs/Config.powerpc"
- endif
- if TARGET_sh
- source "extra/Configs/Config.sh"
- endif
- if TARGET_sparc
- source "extra/Configs/Config.sparc"
- endif
- if TARGET_v850
- source "extra/Configs/Config.v850"
- endif
- source "extra/Configs/Config.in.arch"
- endmenu
- menu "General Library Settings"
- config HAVE_NO_PIC
- bool
- default n
- config DOPIC
- bool "Generate Position Independent Code (PIC)"
- default y
- depends !HAVE_NO_PIC
- help
- If you wish to build uClibc with support for shared libraries then
- answer Y here. If you only want to build uClibc as a static library,
- then answer N.
- config HAVE_NO_SHARED
- bool
- default n
- config HAVE_SHARED
- bool "Enable support for shared libraries"
- depends on DOPIC && !HAVE_NO_SHARED
- default y
- help
- If you wish to build uClibc with support for shared libraries then
- answer Y here. If you only want to build uClibc as a static library,
- then answer N.
- config ARCH_HAS_NO_LDSO
- bool
- default n
- config BUILD_UCLIBC_LDSO
- bool "Compile native shared library loader"
- depends on HAVE_SHARED && !ARCH_HAS_NO_LDSO
- default y
- help
- uClibc has a native shared library loader for some architectures.
- If you answer Y here, the uClibc native shared library loader will
- be built for your target architecture. If this option is available,
- to you, then you almost certainly want to answer Y.
- config FORCE_SHAREABLE_TEXT_SEGMENTS
- bool "Only load shared libraries which can share their text segment"
- depends on BUILD_UCLIBC_LDSO && UCLIBC_COMPLETELY_PIC
- default n
- help
- If you answer Y here, the uClibc native shared library loader will
- only load shared libraries, which do not need to modify any non-writable
- segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
- section (==> objdump). So all your libraries must be compiled with
- -fPIC or -fpic, and all assembler function must be written as position
- independent code (PIC).
- Enabling this option will makes uClibc's shared library loader a
- little bit smaller and guarantee that no memory will be wasted by badly
- coded shared libraries.
- config UCLIBC_PIE_SUPPORT
- bool "Support ET_DYN in shared library loader"
- select FORCE_SHAREABLE_TEXT_SEGMENTS
- default n
- help
- If you answer Y here, the uClibc native shared library loader will
- support ET_DYN/PIE executables.
- It requires binutils-2.14.90.0.6 or later and the usage of the
- -pie option.
- More about ET_DYN/PIE binaries on <http://pageexec.virtualave.net/> .
- WARNING: This option also enables FORCE_SHAREABLE_TEXT_SEGMENTS, so all
- libraries have to be built with -fPIC or -fpic, and all assembler
- functions must be written as position independent code (PIC).
- config LDSO_LDD_SUPPORT
- bool "Native shared library loader 'ldd' support"
- depends on BUILD_UCLIBC_LDSO
- default y
- help
- Enable this to enable all the code needed to support traditional ldd,
- which executes the shared library loader to resolve all dependencies
- and then provide a list of shared libraries that are required for an
- application to function. Disabling this option will makes uClibc's
- shared library loader a little bit smaller. Most people will answer Y.
- config UCLIBC_CTOR_DTOR
- bool "Support global constructors and destructors"
- default y
- help
- If you wish to build uClibc with support for global constructor
- (ctor) and global destructor (dtor) support, then answer Y here.
- When ctor/dtor support is enabled, binaries linked with uClibc must
- also be linked with crtbegin.o and crtend.o which are provided by gcc
- (the "*startfile:" and "*endfile:" settings in your gcc specs file
- may need to be adjusted to include these files). This support will
- also add a small amount of additional size to each binary compiled vs
- uClibc. If you will be using uClibc with C++, or if you need the gcc
- __attribute__((constructor)) and __attribute__((destructor)) to work,
- then you definitely want to answer Y here. If you don't need ctors
- or dtors and want your binaries to be as small as possible, then
- answer N.
-
- config UCLIBC_PROPOLICE
- bool "Support for propolice stack protection"
- default n
- help
- Propolice stack protection.
- More about it on <http://www.research.ibm.com/trl/projects/security/ssp> .
- To be able to use it, you'll also need a propolice patched gcc,
- supporting the -fstack-protector[-all] options. It is a specially patched
- gcc version, were __guard and __stack_smash_handler are removed from libgcc.
- Most people will answer N.
- config UCLIBC_PROFILING
- bool "Support gprof profiling"
- default y
- help
- If you wish to build uClibc with support for application profiling
- using the gprof tool, then you should enable this feature. Then in
- addition to building uClibc with profiling support, you will also
- need to recompile all your shared libraries with the profiling
- enabled version of uClibc. To add profiling support to your
- applications, you must compile things using the gcc options
- "-fprofile-arcs -pg". Then when you run your applications, a
- gmon.out file will be generated which can then be analyzed by
- 'gprof'.
- These exist a number of less invasive alternatives that do not
- require your to specially instrument your application, and recompile
- and relink everything.
-
- Many people have had good results using the combination of Valgrind
- to generate profiling information and KCachegrind for analysis:
- http://developer.kde.org/~sewardj/
- http://kcachegrind.sourceforge.net/
- The OProfile system-wide profiler is another alternative:
- http://oprofile.sourceforge.net/
- Prospect is another alternative based on OProfile:
- http://prospect.sourceforge.net/
- And the Linux Trace Toolkit (LTT) is also a fine tool:
- http://www.opersys.com/LTT/
- If none of these tools do what you need, you can of course enable
- this option, rebuild everything, and use 'gprof'. There is both a
- size and performance penalty to profiling your applications this way,
- so most people should answer N.
- config HAS_NO_THREADS
- bool
- default n
- config UCLIBC_HAS_THREADS
- bool "POSIX Threading Support"
- depends on !HAS_NO_THREADS
- default y
- help
- If you want to compile uClibc with pthread support, then answer Y.
- This will increase the size of uClibc by adding a bunch of locking
- to critical data structures, and adding extra code to ensure that
- functions are properly reentrant.
- If your applications require pthreads, answer Y.
- config PTHREADS_DEBUG_SUPPORT
- bool "Build pthreads debugging support"
- default n
- depends on UCLIBC_HAS_THREADS
- help
- Say Y here if you wish to be able to debug applications that use
- uClibc's pthreads library. By enabling this option, a library
- named libthread_db will be built. This library will be dlopen()'d
- by gdb and will allow gdb to debug the threads in your application.
- IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
- you must compile gdb with uClibc in order for pthread debugging to
- work properly.
- If you are doing development and want to debug applications using
- uClibc's pthread library, answer Y. Otherwise, answer N.
- config UCLIBC_HAS_LFS
- bool "Large File Support"
- default y
- depends on !CONFIG_CRIS
- help
- If you wish to build uClibc with support for accessing large files
- (i.e. files greater then 2 GiB) then answer Y. Do not enable this
- if you are using an older Linux kernel (2.0.x) that lacks large file
- support. Enabling this option will increase the size of uClibc.
- choice
- prompt "Malloc Implementation"
- default MALLOC if ! ARCH_HAS_MMU
- default MALLOC_STANDARD if ARCH_HAS_MMU
- help
- "malloc" use mmap for all allocations and so works very well on MMU-less
- systems that do not support the brk() system call. It is pretty smart
- about reusing already allocated memory, and minimizing memory wastage.
- This is the default for uClinux MMU-less systems.
- "malloc-simple" was written from scratch for uClibc, and is the
- simplest possible (and therefore smallest) malloc implementation.
- It is rather dumb, and certainly isn't the fastest. But it is 100%
- standards compliant, thread safe, and very small.
- "malloc-standard" is derived from the public domain dlmalloc
- implementation by Doug Lea. It is quite fast, and is pretty smart
- about reusing already allocated memory, and minimizing memory
- wastage. This uses brk() for small allocations, while using mmap()
- for larger allocations. This is the default malloc implementation
- for uClibc.
- If unsure, answer "malloc-standard".
- config MALLOC
- bool "malloc"
- config MALLOC_SIMPLE
- bool "malloc-simple"
- config MALLOC_STANDARD
- bool "malloc-standard"
- depends on ARCH_HAS_MMU
- endchoice
- config MALLOC_GLIBC_COMPAT
- bool "Malloc returns live pointer for malloc(0)"
- default n
- help
- The behavior of malloc(0) is listed as implementation-defined by
- SuSv3. Glibc returns a valid pointer to something, while uClibc
- normally return a NULL. I personally feel glibc's behavior is
- not particularly safe, and allows buggy applications to hide very
- serious problems.
- When this option is enabled, uClibc will act just like glibc, and
- return a live pointer when someone calls malloc(0). This pointer
- provides a malloc'ed area with a size of 1 byte. This feature is
- mostly useful when dealing with applications using autoconf's broken
- AC_FUNC_MALLOC macro (which redefines malloc as rpl_malloc if it
- does not detect glibc style returning-a-valid-pointer-for-malloc(0)
- behavior). Most people can safely answer N.
- config UCLIBC_DYNAMIC_ATEXIT
- bool "Dynamic atexit() Support"
- default y
- help
- When this option is enabled, uClibc will support an infinite number,
- of atexit() and on_exit() functions, limited only by your available
- memory. This can be important when uClibc is used with C++, since
- global destructors are implemented via atexit(), and it is quite
- possible to exceed the default number when this option is disabled.
- Enabling this option adds a few bytes, and more significantly makes
- atexit and on_exit depend on malloc, which can be bad when compiling
- static executables.
- Unless you use uClibc with C++, you should probably answer N.
- config HAS_SHADOW
- bool "Shadow Password Support"
- default y
- help
- Answer N if you do not need shadow password support.
- Most people will answer Y.
- config UNIX98PTY_ONLY
- bool "Support only Unix 98 PTYs"
- default y
- help
- If you want to support only Unix 98 PTYs enable this. Some older
- applications may need this disabled. For most current programs,
- you can generally answer Y.
- config ASSUME_DEVPTS
- bool "Assume that /dev/pts is a devpts or devfs file system"
- default y
- help
- Enable this if /dev/pts is on a devpts or devfs filesystem. Both
- these filesystems automatically manage permissions on the /dev/pts
- devices. You may need to mount your devpts or devfs filesystem on
- /dev/pts for this to work.
- Most people should answer Y.
- config UCLIBC_HAS_TM_EXTENSIONS
- bool "Support 'struct tm' timezone extension fields"
- default y
- help
- Enabling this option adds fields to 'struct tm' in time.h for
- tracking the number of seconds east of UTC, and an abbreviation for
- the current timezone. These fields are not specified by the SuSv3
- standard, but they are commonly used in both GNU and BSD application
- code.
- To strictly follow the SuSv3 standard, leave this disabled.
- Most people will probably want to answer Y.
- config UCLIBC_HAS_TZ_CACHING
- bool "Enable caching of the last valid timezone 'TZ' string"
- default y
- help
- Answer Y to enable caching of the last valid 'TZ' string describing
- the timezone setting. This allows a quick string compare to avoid
- repeated parsing of unchanged 'TZ' strings when tzset() is called.
- Most people will answer Y.
- config UCLIBC_HAS_TZ_FILE
- bool "Enable '/etc/TZ' file support to set a default timezone (uClibc-specific)"
- default y
- help
- Answer Y to enable the setting of a default timezone for uClibc.
- Ordinarily, uClibc gets the timezone information exclusively from the
- 'TZ' environment variable. In particular, there is no support for
- the zoneinfo directory tree or the /etc/timezone file used by glibc.
- With this option enabled, uClibc will use the value stored in the
- file '/etc/TZ' (default path) to obtain timezone information if the
- 'TZ' environment variable is missing or has an invalid value. The
- file consists of a single line (newline required) of text describing
- the timezone in the format specified for the TZ environment variable.
- Simply doing 'echo CST6CDT > /etc/TZ' is enough to create a valid file.
- See
- http://www.opengroup.org/onlinepubs/007904975/basedefs/xbd_chap08.html
- for details on valid settings of 'TZ'.
- Most people will answer Y.
- config UCLIBC_HAS_TZ_FILE_READ_MANY
- bool "Repeatedly read the '/etc/TZ' file"
- depends on UCLIBC_HAS_TZ_FILE
- default y
- help
- Answer Y to enable repeated reading of the '/etc/TZ' file even after
- a valid value has been read. This incurs the overhead of an open/read/close
- for each tzset() call (explicit or implied). However, setting this
- will allows applications to update their timezone information if the contents
- of the file change.
- Most people will answer Y.
- config UCLIBC_TZ_FILE_PATH
- string "Path to the 'TZ' file for setting the global timezone"
- depends on UCLIBC_HAS_TZ_FILE
- default "/etc/TZ"
- help
- This is the path to the 'TZ' file.
- Most people will use the default of '/etc/TZ'.
- endmenu
- menu "Networking Support"
- config UCLIBC_HAS_IPV6
- bool "IP version 6 Support"
- default n
- help
- If you want to include support for the next version of the Internet
- Protocol (IP version 6) then answer Y.
-
- Most people should answer N.
- config UCLIBC_HAS_RPC
- bool "Remote Procedure Call (RPC) support"
- default n
- help
- If you want to include RPC support, enable this. RPC is rarely used
- for anything except for the NFS filesystem. Unless you plan to use NFS,
- you can probably leave this set to N and save some space. If you need
- to use NFS then you should answer Y.
- config UCLIBC_HAS_FULL_RPC
- bool "Full RPC support"
- depends on UCLIBC_HAS_RPC
- default y if !HAVE_SHARED
- help
- Normally we enable just enough RPC support for things like rshd and
- nfs mounts to work. If you find you need the rest of the RPC stuff,
- then enable this option. Most people can safely answer N.
- endmenu
- menu "String and Stdio Support"
- config UCLIBC_HAS_CTYPE_TABLES
- bool "Use Table Versions Of 'ctype.h' Functions."
- default y
- help
- Answer Y to use table versions of the 'ctype.h' functions.
- While the non-table versions are often smaller when building
- staticly linked apps, they work only in stub locale mode.
-
- Most people will answer Y.
- config UCLIBC_HAS_CTYPE_SIGNED
- bool "Support Signed Characters In 'ctype.h' Functions."
- depends UCLIBC_HAS_CTYPE_TABLES
- default y
- help
- Answer Y to enable support for passing signed char values to
- the 'ctype.h' functions. ANSI/ISO C99 and SUSv3 specify that
- these functions are only defined for unsigned char values and
- EOF. However, glibc allows negative signed char values as well
- in order to support 'broken old programs'.
- Most people will answer Y.
- choice
- prompt "ctype argument checking"
- depends UCLIBC_HAS_CTYPE_TABLES
- default UCLIBC_HAS_CTYPE_UNSAFE
- help
- Please select the invalid arg behavior you want for the 'ctype' functions.
- The 'ctype' functions are now implemented using table lookups, with
- the arg being the index. This can result in incorrect memory accesses
- or even segfaults for args outside of the allowed range.
- NOTE: This only affects the 'ctype' _functions_. It does not affect
- the macro implementations.
- config UCLIBC_HAS_CTYPE_UNSAFE
- bool "Do not check -- unsafe"
- config UCLIBC_HAS_CTYPE_CHECKED
- bool "Detect and handle appropriately"
- config UCLIBC_HAS_CTYPE_ENFORCED
- bool "Issue a diagnostic and abort()"
- endchoice
- config UCLIBC_HAS_WCHAR
- bool "Wide Character Support"
- default n
- help
- Answer Y to enable wide character support. This will make uClibc
- much larger. It is also currently required for locale support.
- Most people will answer N.
- config UCLIBC_HAS_LOCALE
- bool "Locale Support"
- select UCLIBC_HAS_WCHAR
- select UCLIBC_HAS_CTYPE_TABLES
- default n
- help
- uClibc now has full ANSI/ISO C99 locale support (except for
- wcsftime() and collating items in regex). Be aware that enabling
- this option will make uClibc much larger.
-
- Enabling UCLIBC_HAS_LOCALE with the default set of supported locales
- (169 UTF-8 locales, and 144 locales for other codesets) will enlarge
- uClibc by around 300k. You can reduce this size by building your own
- custom set of locate data (see extra/locale/LOCALES for details).
- uClibc's locale support is still under development. For example,
- codesets using shift states are not currently supported. Support is
- planned in the next iteration of locale support.
- Answer Y to enable locale support. Most people will answer N.
- config UCLIBC_PREGENERATED_LOCALE_DATA
- bool "Use Pre-generated Locale Data"
- depends on UCLIBC_HAS_LOCALE
- default n
- help
- If you are selective and only want locale data for a few particular
- locales, or you enjoy pain, or you are a rabid do-it-yourself sort of
- person, you can turn this option off and manually walk through the
- mostly undocumented procedure needed to generate your own locale
- data.
- Mere mortals will answer Y and use the default set of pregenerated
- locale data, which supports 169 UTF-8 locales, and 144 locales for
- other codesets (for the complete list see extra/locale/LOCALES).
- config UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA
- bool "Automagically Download the Pre-generated Locale Data (if necessary)"
- depends on UCLIBC_PREGENERATED_LOCALE_DATA
- default n
- help
- If you would like the build process to use 'wget' to automatically
- download the pregenerated locale data, enable this option. Otherwise
- you will need to obtain the locale data yourself from:
- http://www.uclibc.org/downloads/uClibc-locale-030818.tgz
- and place the uClibc-locale-030818.tgz tarball in the extra/locale/
- directory.
- Go ahead and make life easy for yourself... Answer Y.
- config UCLIBC_HAS_XLOCALE
- bool "Extended Locale Support (experimental/incomplete)"
- depends on UCLIBC_HAS_LOCALE
- default n
- help
- Answer Y to enable extended locale support similar to that provided
- by glibc. This is primarily intended to support libstd++ functionality.
- However, it also allows thread-specific locale selection via uselocale().
- Most people will answer N.
- config UCLIBC_HAS_HEXADECIMAL_FLOATS
- bool "Support hexadecimal float notation"
- depends UCLIBC_HAS_CTYPE_TABLES
- depends on UCLIBC_HAS_FLOATS
- default n
- help
- Answer Y to enable support for hexadecimal float notation in the
- (wchar and) char string to floating point conversion functions, as
- well as support for the %a and %A conversion specifiers in the
- *printf() and *scanf() functions.
- Most people will answer N.
- config UCLIBC_HAS_GLIBC_DIGIT_GROUPING
- bool "Support glibc's \"'\" flag for allowing locale-specific digit grouping"
- depends on UCLIBC_HAS_LOCALE
- depends on UCLIBC_HAS_FLOATS
- default n
- help
- Answer Y to enable support for glibc's \"'\" flag for allowing locale-specific
- digit grouping in base 10 integer conversions and appropriate floating point
- conversions in the *printf() and *scanf() functions.
- Most people will answer N.
- config UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING
- bool "Do not require digit grouping when the \"'\" flag is specified"
- depends on UCLIBC_HAS_GLIBC_DIGIT_GROUPING
- default y
- help
- Answer Y to make digit grouping optional when the \"'\" flag is specified.
- This is the standard glibc behavior. If the initial string of digits
- exceeds the maximum group number, the input will be treated as a normal
- non-grouped number.
- Most people will answer N.
- config UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
- bool "Support glibc's register_printf_function() (glibc-compat)"
- depends on !USE_OLD_VFPRINTF
- default n
- help
- Answer Y to support glibc's register_printf_function() to allow an
- application to add its own printf conversion specifiers.
- NOTE: This implementation limits the number or registered specifiers to 10.
- NOTE: This implementation requires new conversion specifiers to be ASCII
- characters (0-0x7f). This is to avoid problems with processing
- format strings in locales with different multibyte conversions.
- Most people will answer N.
- config USE_OLD_VFPRINTF
- bool "Use the old vfprintf implementation"
- depends on !UCLIBC_HAS_WCHAR
- default n
- help
- Set to true to use the old vfprintf instead of the new. This is roughly
- C89 compliant with some extensions, and is much smaller. However, it does
- not support wide chars, positional args, or glibc custom printf specifiers.
- Most people will answer N.
- config UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS
- int "Maximum number of positional args. Either 0 or >= 9."
- depends on !USE_OLD_VFPRINTF
- default 9
- help
- Set the maximum number of positional args supported by the printf/scanf
- functions. The Single Unix Specification Version 3 requires a minimum
- value of 9. Setting this to a value lower than 9 will disable positional
- arg support and cause the NL_ARGMAX macro in limits.h to be #undef'd.
- WARNING! The workspace to support positional args is currently allocated
- on the stack. You probably don't want to set this to too high a value.
- Most people will answer 9.
- config UCLIBC_HAS_SCANF_GLIBC_A_FLAG
- bool "Support glibc's 'a' flag for scanf string conversions"
- default n
- help
- NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!!
- Answer Y to enable support for glibc's 'a' flag for the scanf string
- conversions '%s', '%[', '%ls', '%l[', and '%S'. This is used to
- auto-allocate sufficient memory to hold the data retrieved.
- Most people will answer N.
- choice
- prompt "Stdio buffer size"
- default UCLIBC_HAS_STDIO_BUFSIZ_4096
- help
- Please select a value for BUFSIZ. This will be used by the
- stdio subsystem as the default buffer size for a file, and
- affects fopen(), setvbuf(), etc.
- NOTE: Setting this to 'none' will disable buffering completely.
- However, BUFSIZ will still be defined in stdio.h as 256 because
- many applications use this value.
- config UCLIBC_HAS_STDIO_BUFSIZ_NONE
- bool "none (WARNING - BUFSIZ will be 256 in stdio.h)"
- depends !UCLIBC_HAS_WCHAR
- config UCLIBC_HAS_STDIO_BUFSIZ_256
- bool "256 (minimum ANSI/ISO C99 value)"
- config UCLIBC_HAS_STDIO_BUFSIZ_512
- bool "512"
- config UCLIBC_HAS_STDIO_BUFSIZ_1024
- bool "1024"
- config UCLIBC_HAS_STDIO_BUFSIZ_2048
- bool "2048"
- config UCLIBC_HAS_STDIO_BUFSIZ_4096
- bool "4096"
- config UCLIBC_HAS_STDIO_BUFSIZ_8192
- bool "8192"
- # If you add more choices, you will need to update uClibc_stdio.h.
- endchoice
- choice
- prompt "Stdio builtin buffer size (uClibc-specific)"
- depends !UCLIBC_HAS_STDIO_BUFSIZ_NONE
- default UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE
- help
- When a FILE is created with fopen(), an attempt is made to allocate
- a BUFSIZ buffer for it. If the allocation fails, fopen() will still
- succeed but the FILE will be unbuffered.
- This option adds a small amount of space to each FILE to act as an
- emergency buffer in the event of a buffer allocation failure.
- Most people will answer None.
- config UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE
- bool "None"
- config UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4
- bool "4"
- config UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8
- bool "8"
- # If you add more choices, you will need to update uClibc_stdio.h.
- endchoice
- config UCLIBC_HAS_STDIO_GETC_MACRO
- bool "Provide a macro version of getc()"
- depends !UCLIBC_HAS_STDIO_BUFSIZ_NONE
- default y
- help
- Provide a macro version of getc().
- Most people will answer Y.
- config UCLIBC_HAS_STDIO_PUTC_MACRO
- bool "Provide a macro version of putc()"
- depends !UCLIBC_HAS_STDIO_BUFSIZ_NONE
- default y
- help
- Provide a macro version of putc().
- Most people will answer Y.
- config UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION
- bool "Support auto-r/w transition"
- default y
- help
- Answer Y to enable the stdio subsystem to automaticly transition
- between reading and writing. This relaxes the ANSI/ISO C99 requirement:
- When a file is opened with update mode ('+' as the second or third character
- in the list of mode argument values), both input and output may be performed
- on the associated stream. However, output shall not be directly followed by
- input without an intervening call to the fflush function or to a file
- positioning function (fseek, fsetpos, or rewind), and input shall not be
- directly followed by output without an intervening call to a file positioning
- function, unless the input operation encounters endoffile.
- Most people will answer Y.
- config UCLIBC_HAS_FOPEN_LARGEFILE_MODE
- bool "Support an fopen() 'F' flag for large file mode (uClibc-specific)"
- depends on UCLIBC_HAS_LFS
- default n
- help
- Answer Y to enable a uClibc-specific extension to allow passing an
- additional 'F' flag in the mode string for fopen() to specify that
- the file should be open()ed with the O_LARGEFILE flag set.
- Most people will answer N.
- config UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE
- bool "Support an fopen() 'x' flag for exclusive mode (glibc-compat)"
- default n
- help
- Answer Y to support a glibc extension to allow passing
- additional 'x' flag in the mode string for fopen() to specify that
- the file should be open()ed with the O_EXCL flag set.
- Most people will answer N.
- config UCLIBC_HAS_GLIBC_CUSTOM_STREAMS
- bool "Support fmemopen(), open_memstream(), and fopencookie() (glibc-compat)"
- default n
- help
- Answer Y to support the glibc 'custom stream' extension functions
- fmemopen(), open_memstream(), and fopencookie().
- NOTE: There are some minor differences regarding seeking behavior.
- Most people will answer N.
- config UCLIBC_HAS_PRINTF_M_SPEC
- bool "Support the '%m' specifier in printf format strings (glibc-compat)"
- default n
- help
- Answer Y to support a glibc extension to interpret '%m' in printf
- format strings as an instruction to output the error message string
- (as generated by strerror) corresponding to the current value of 'errno'.
- Most people will answer N.
- config UCLIBC_HAS_ERRNO_MESSAGES
- bool "Include the errno message text in the library"
- default y
- help
- Answer Y if you want to include the errno message text in the
- library. This adds about 3K to the library, but enables strerror()
- to generate text other than 'Unknown error <number>'.
- Most people will answer Y.
- config UCLIBC_HAS_SYS_ERRLIST
- bool "Support sys_errlist[] (obsolete-compat)"
- depends on UCLIBC_HAS_ERRNO_MESSAGES
- default n
- help
- Answer Y if you want to support the obsolete sys_errlist[].
- This adds about 0.5k to the library, except for the mips
- arch where it adds over 4K.
- WARNING! In the future, support for sys_errlist[] may be unavailable
- in at least some configurations. In fact, it may be removed altogether.
- Most people will answer N.
- config UCLIBC_HAS_SIGNUM_MESSAGES
- bool "Include the signum message text in the library"
- default y
- help
- Answer Y if you want to include the signum message text in the
- library. This adds about 0.5K to the library, but enables strsignal()
- to generate text other than 'Unknown signal <number>'.
- Most people will answer Y.
- config UCLIBC_HAS_SYS_SIGLIST
- bool "Support sys_siglist[] (bsd-compat)"
- depends on UCLIBC_HAS_SIGNUM_MESSAGES
- default n
- help
- Answer Y if you want to support sys_siglist[].
- WARNING! In the future, support for sys_siglist[] may be unavailable
- in at least some configurations. In fact, it may be removed altogether.
- Most people will answer N.
- config UCLIBC_HAS_GETTEXT_AWARENESS
- bool "Include gettext awareness"
- depends on UCLIBC_HAS_LOCALE
- default n
- help
- NOTE!!! Not yet integrated with strerror and strsignal. NOTE!!!
- Answer Y if you want to include weak stub gettext support and
- make the *strerror*() and strsignal() functions gettext-aware.
- Currently, to get functional gettext functionality you will need
- to use gnu gettext.
- Most people will answer N.
- config UCLIBC_HAS_GNU_GETOPT
- bool "Support gnu getopt"
- default y
- help
- Answer Y if you want to include full gnu getopt() instead of a
- (much smaller) SUSv3 compatible getopt().
- Most people will answer Y.
- endmenu
- menu "Big and Tall"
- config UCLIBC_HAS_REGEX
- bool "Regular Expression Support"
- default y
- help
- POSIX regular expression code is really big -- 27k all by itself.
- If you don't use regular expressions, turn this off and save space.
- Of course, if you only staticly link, leave this on, since it will
- only be included in your apps if you use regular expressions.
- config UCLIBC_HAS_WORDEXP
- bool "Support the wordexp() interface"
- default n
- help
- The SuSv3 wordexp() interface performs word expansions per the Shell
- and Utilities volume of IEEE Std 1003.1-2001, Section 2.6. It is
- intended for use by applications that want to implement all of the
- standard Bourne shell expansions on input data.
- This interface is rarely used, and very large. Unless you have a
- pressing need for wordexp(), you should probably answer N.
- config UCLIBC_HAS_FTW
- bool "Support the ftw() and nftw() interfaces"
- default n
- help
- The SuSv3 ftw() and nftw() interfaces are used to recursively descend
- directory paths while repeatedly calling a function.
- This interface is rarely used, and adds around 4.5k. Unless you have
- a pressing need for ftw() or nftw(), you should probably answer N.
- config UCLIBC_HAS_GLOB
- bool "Support the glob() interface"
- default y
- help
- The glob interface is somewhat large (weighing in at about 4k). It
- is used fairly often, but is an option since people wanting to go for
- absolute minimum size may wish to omit it.
- Most people will answer Y.
- endmenu
- menu "Library Installation Options"
- config SHARED_LIB_LOADER_PREFIX
- string "Shared library loader path"
- depends on BUILD_UCLIBC_LDSO
- default "$(DEVEL_PREFIX)/lib"
- help
- When using shared libraries, this path is the location where the
- shared library will be invoked. This value will be compiled into
- every binary compiled with uClibc.
- For a typical target system this should be set to "/lib", such that
- 'make install' will install /lib/ld-uClibc.so.0.
- BIG FAT WARNING:
- If you do not have a shared library loader with the correct name
- sitting in the directory this points to, your binaries will not
- run.
- config SYSTEM_LDSO
- string "System shared library loader"
- depends on HAVE_SHARED && !BUILD_UCLIBC_LDSO
- default "/lib/ld-linux.so.2"
- help
- If you are using shared libraries, but do not want/have a native
- uClibc shared library loader, please specify the name of your
- target system's shared library loader here...
- BIG FAT WARNING:
- If you do not have a shared library loader with the correct name
- sitting in the directory this points to, your binaries will not
- run.
- config RUNTIME_PREFIX
- string "uClibc runtime library directory"
- default "/usr/$(TARGET_ARCH)-linux-uclibc/"
- help
- RUNTIME_PREFIX is the directory into which the uClibc runtime
- libraries will be installed. The result will look something
- like the following:
- $(RUNTIME_PREFIX)/
- lib/ <contains all runtime libraries>
- usr/bin/ldd <the ldd utility program>
- sbin/ldconfig <the ldconfig utility program>
- This value is used by the 'make install' Makefile target. Since this
- directory is compiled into the shared library loader, you will need to
- recompile uClibc if you change this value...
- For a typical target system this should be set to "/", such that
- 'make install' will install /lib/libuClibc-<VERSION>.so
- config DEVEL_PREFIX
- string "uClibc development environment directory"
- default "/usr/$(TARGET_ARCH)-linux-uclibc/usr/"
- help
- DEVEL_PREFIX is the directory into which the uClibc development
- environment will be installed. The result will look something
- like the following:
- $(DEVEL_PREFIX)/
- lib/ <contains static libs>
- include/ <Where all the header files go>
- This value is used by the 'make install' Makefile target when
- installing a uClibc development environment.
- For a typical target system this should be set to "/usr", such that
- 'make install' will install /usr/include/<header files>.
- endmenu
- menu "uClibc development/debugging options"
- config DODEBUG
- bool "Build uClibc with debugging symbols"
- default n
- help
- Say Y here if you wish to compile uClibc with debugging symbols.
- This will allow you to use a debugger to examine uClibc internals
- while applications are running. This increases the size of the
- library considerably and should only be used when doing development.
- If you are doing development and want to debug uClibc, answer Y.
- Otherwise, answer N.
- config DOASSERTS
- bool "Build uClibc with run-time assertion testing"
- default n
- help
- Say Y here to include runtime assertion tests.
- This enables runtime assertion testing in some code, which can
- increase the size of the library and incur runtime overhead.
- If you say N, then this testing will be disabled.
- config SUPPORT_LD_DEBUG
- bool "Build the shared library loader with debugging support"
- depends on BUILD_UCLIBC_LDSO
- default n
- help
- Answer Y here to enable all the extra code needed to debug the uClibc
- native shared library loader. The level of debugging noise that is
- generated depends on the LD_DEBUG environment variable... Just set
- LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
- debug your application. Diagnostic messages will then be printed to
- the stderr.
- For now these debugging tokens are available:
- detail provide more information for some options
- move display copy processing
- symbols display symbol table processing
- reloc display relocation processing; detail shows the relocation patch
- nofixups never fixes up jump relocations
- bindings displays the resolve processing (function calls); detail shows the relocation patch
- all Enable everything!
- The additional environment variable:
- LD_DEBUG_OUTPUT=file
- redirects the diagnostics to an output file created using
- the specified name and the process id as a suffix.
- An excellent start is simply:
- $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
- or to log everything to a file named 'logfile', try this
- $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
- If you are doing development and want to debug uClibc's shared library
- loader, answer Y. Mere mortals answer N.
- config SUPPORT_LD_DEBUG_EARLY
- bool "Build the shared library loader with early debugging support"
- depends on BUILD_UCLIBC_LDSO
- default n
- help
- Answer Y here to if you find the uClibc shared library loader is
- crashing or otherwise not working very early on. This is typical
- only when starting a new port when you haven't figured out how to
- properly get the values for argc, argv, environ, etc. This method
- allows a degree of visibility into the very early shared library
- loader initialization process. If you are doing development and want
- to debug the uClibc shared library loader early initialization,
- answer Y. Mere mortals answer N.
- config UCLIBC_MALLOC_DEBUGGING
- bool "Build malloc with debugging support"
- depends MALLOC
- default n
- help
- Answer Y here to compile extra debugging support code into malloc.
- Malloc debugging output may then be enabled at runtime using the
- MALLOC_DEBUG environment variable.
- The value of MALLOC_DEBUG should be an integer, which is interpreted as
- a bitmask with the following bits:
- 1 - do extra consistency checking
- 2 - output messages for malloc/free calls and OS allocation calls
- 4 - output messages for the `MMB' layer
- 8 - output messages for internal malloc heap manipulation calls
-
- Because this increases the size of malloc appreciably (due to strings
- etc), you should say N unless you need to debug a malloc problem.
- config UCLIBC_MJN3_ONLY
- bool "Manuel's hidden warnings"
- default n
- help
- Answer Y here to see all Manuel's personal notes, warnings, and todos.
- Most people will answer N.
- endmenu
|