📄 config.in
字号:
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 && UCLIBC_MJN3_ONLY 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.endmenumenu "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.endmenumenu "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>.soconfig 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>.endmenumenu "uClibc security related options"config UCLIBC_SECURITY bool "Enable security options" default nconfig UCLIBC_BUILD_PIE bool "Build utilities as ET_DYN/PIE executables" depends on UCLIBC_SECURITY depends on HAVE_SHARED depends on TARGET_i386 || TARGET_powerpc || TARGET_mips || TARGET_frv select FORCE_SHAREABLE_TEXT_SEGMENTS if BUILD_UCLIBC_LDSO default y help If you answer Y here, ldd and iconv are built as ET_DYN/PIE executables. It requires gcc-3.4 and binutils-2.15 or later. More about ET_DYN/PIE binaries on <http://pax.grsecurity.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 UCLIBC_HAS_SSP bool "Support for propolice stack protection" depends on UCLIBC_SECURITY default n help Adds propolice protection to libc (__guard and __stack_smash_handler). 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, where __guard and __stack_smash_handler are removed from libgcc. Most people will answer N.config SSP_QUICK_CANARY bool "Simple propolice canary w/o accessing /dev/*random" depends on UCLIBC_HAS_SSP default n help Propolice uses a simplified version of the canary, without accessing /dev/*random. Most people will answer N.choice prompt "Propolice protection blocking signal" depends on UCLIBC_HAS_SSP default PROPOLICE_BLOCK_ABRT if ! DODEBUG default PROPOLICE_BLOCK_SEGV if DODEBUG help "abort" use SIGABRT to block offending programs. This is the default implementation. "segfault" use SIGSEGV to block offending programs. Use this for debugging. "kill" use SIGKILL to block offending programs. Perhaps the best for security. If unsure, answer "abort".config PROPOLICE_BLOCK_ABRT bool "abort"config PROPOLICE_BLOCK_SEGV bool "segfault"config PROPOLICE_BLOCK_KILL bool "kill"endchoiceconfig UCLIBC_BUILD_SSP bool "Build uClibc with propolice protection" depends on UCLIBC_SECURITY depends on UCLIBC_HAS_SSP default n help Build all libraries and executables with propolice protection enabled.config UCLIBC_BUILD_RELRO bool "Build uClibc with RELRO" depends on UCLIBC_SECURITY depends on BUILD_UCLIBC_LDSO default y help Build all libraries and executables with -z relro.config UCLIBC_BUILD_NOW bool "Build uClibc with NOW" depends on UCLIBC_SECURITY depends on BUILD_UCLIBC_LDSO default y help Build all libraries and executables with -z now.config UCLIBC_BUILD_NOEXECSTACK bool "Build uClibc with noexecstack marking" depends on UCLIBC_SECURITY default y help Mark all assembler files as noexecstack. This will result in marking all libraries and executables built against uClibc not requiring executable stack.endmenumenu "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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -