diff options
author | Ladislav Michl <ladis@linux-mips.org> | 2007-03-19 15:40:46 +0000 |
---|---|---|
committer | Ladislav Michl <ladis@linux-mips.org> | 2007-03-19 15:40:46 +0000 |
commit | 103aaa551a71411ac5aef45863560872e9112a30 (patch) | |
tree | 8036b354b492d0a1e42589a9fcf5549c24f31d6d /config | |
parent | f1b31996906c532b149f2d59421eeccfd6bd811e (diff) | |
download | OSELAS.Toolchain-103aaa551a71411ac5aef45863560872e9112a30.tar.gz OSELAS.Toolchain-103aaa551a71411ac5aef45863560872e9112a30.tar.xz |
Premiliary uClibc support.
git-svn-id: https://svn.pengutronix.de/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk@2257 f8d472c7-5700-0410-ac5a-87979cec3adf
Diffstat (limited to 'config')
22 files changed, 2340 insertions, 0 deletions
diff --git a/config/uClibc-0.9.28/Config.alpha b/config/uClibc-0.9.28/Config.alpha new file mode 100644 index 0000000..ba63e3b --- /dev/null +++ b/config/uClibc-0.9.28/Config.alpha @@ -0,0 +1,30 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + select UC_ARCH_HAS_MMU + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + select UC_HAS_NO_THREADS + select UC_UCLIBC_HAS_LFS + bool + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +config UC_TARGET_ARCH + default "alpha" + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + diff --git a/config/uClibc-0.9.28/Config.arm b/config/uClibc-0.9.28/Config.arm new file mode 100644 index 0000000..d0d1fb8 --- /dev/null +++ b/config/uClibc-0.9.28/Config.arm @@ -0,0 +1,84 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + bool + default y + +config UC_TARGET_ARCH + default "arm" + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +choice + prompt "Target Processor Type" + default UC_CONFIG_GENERIC_ARM + help + This is the processor type of your CPU. This information is used for + optimizing purposes. To build a library that will run on all ARMCPU + types (albeit not optimally fast), you can specify "Generic Arm" here. + If you pick anything other than "Generic Arm", there is no guarantee + that uClibc will even run on anything other than the selected processor + type. + + Here are the settings recommended for greatest speed: + - "Generic Arm" select this if your compiler is already setup to + optimize things properly, or if you want to run on pretty much + everything, or you just don't much care. + - For anything else, pick the ARM core type that best matches the + cpu you will be using on your device. + + If you don't know what to do, choose "Generic Arm". + +config UC_CONFIG_GENERIC_ARM + bool "Generic Arm" + +config UC_CONFIG_ARM610 + bool "Arm 610" + +config UC_CONFIG_ARM710 + bool "Arm 710" + +config UC_CONFIG_ARM720T + bool "Arm 720T" + +config UC_CONFIG_ARM920T + bool "Arm 920T" + +config UC_CONFIG_ARM922T + bool "Arm 922T" + +config UC_CONFIG_ARM926T + bool "Arm 926T" + +config UC_CONFIG_ARM1136JF_S + bool "Arm 1136JF-S" + +config UC_CONFIG_ARM_SA110 + bool "Intel StrongArm SA-110" + +config UC_CONFIG_ARM_SA1100 + bool "Intel StrongArm SA-1100" + +config UC_CONFIG_ARM_XSCALE + bool "Intel Xscale" + +endchoice + diff --git a/config/uClibc-0.9.28/Config.bfin b/config/uClibc-0.9.28/Config.bfin new file mode 100644 index 0000000..8c7314e --- /dev/null +++ b/config/uClibc-0.9.28/Config.bfin @@ -0,0 +1,28 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "bfin" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_LITTLE_ENDIAN + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_HAVE_ELF + bool + default y diff --git a/config/uClibc-0.9.28/Config.cris b/config/uClibc-0.9.28/Config.cris new file mode 100644 index 0000000..f68ce5c --- /dev/null +++ b/config/uClibc-0.9.28/Config.cris @@ -0,0 +1,41 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + bool + default y + +config UC_TARGET_ARCH + default "cris" + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +choice + prompt "Target Architecture Type" + default UC_CONFIG_CRIS + help + This is the architecture type of your CPU. This information is used for + optimizing purposes. + + These are the possible settings: + - CRIS Generic support for Axis' CRIS architecture. + +config UC_CONFIG_CRIS + select UC_ARCH_HAS_MMU + bool "CRIS" + +endchoice + diff --git a/config/uClibc-0.9.28/Config.e1 b/config/uClibc-0.9.28/Config.e1 new file mode 100644 index 0000000..d54f968 --- /dev/null +++ b/config/uClibc-0.9.28/Config.e1 @@ -0,0 +1,34 @@ + + +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + select UC_ARCH_HAS_NO_MMU + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + bool + default n + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_TARGET_ARCH + default "e1" + +config UC_ARCH_E1 + bool + default y + +config UC_ARCH_CFLAGS + string + default "-mgnu-param" + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + diff --git a/config/uClibc-0.9.28/Config.frv b/config/uClibc-0.9.28/Config.frv new file mode 100644 index 0000000..d2be88e --- /dev/null +++ b/config/uClibc-0.9.28/Config.frv @@ -0,0 +1,29 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + bool + select UC_HAS_FPU + select UC_ARCH_BIG_ENDIAN + select UC_ARCH_HAS_NO_MMU + default y + +config UC_TARGET_ARCH + string + default "frv" + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_HAVE_DOT_HIDDEN + bool + default y + diff --git a/config/uClibc-0.9.28/Config.h8300 b/config/uClibc-0.9.28/Config.h8300 new file mode 100644 index 0000000..10f9c85 --- /dev/null +++ b/config/uClibc-0.9.28/Config.h8300 @@ -0,0 +1,47 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_HAS_C_SYMBOL_PREFIX + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +config UC_TARGET_ARCH + default "h8300" + +choice + prompt "Target Processor" + default UC_CONFIG_H8300H + help + This is the processor type of your CPU. + +config UC_CONFIG_H8300H + bool "H8300H" + +config UC_CONFIG_H8S + bool "H8S (edosk2674)" + +endchoice + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + diff --git a/config/uClibc-0.9.28/Config.i386 b/config/uClibc-0.9.28/Config.i386 new file mode 100644 index 0000000..f43a195 --- /dev/null +++ b/config/uClibc-0.9.28/Config.i386 @@ -0,0 +1,115 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_MMU + default y + +config UC_TARGET_ARCH + string + default "i386" + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +choice + prompt "Target x86 Processor Family" + default UC_CONFIG_GENERIC_386 + help + This is the processor type of your CPU. This information is used for + optimizing purposes. To build a library that will run on all x86 CPU + types (albeit not optimally fast), you can specify "386" here. If + you pick anything other than "386", there is no guarantee that uClibc + will even run on anything other than the selected processor type. + + Here are the settings recommended for greatest speed: + - "Generic 386" select this if your compiler is already setup to + optimize things properly. + - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI + 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels + will run on a 386 class machine. + - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or + SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. + - "586" for Intel Pentium and other generic Pentium CPUs + - "Pentium-MMX" for the Intel Pentium MMX. + - "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II. + - "Pentium-III" for the Intel Pentium III + and Celerons based on the Coppermine core. + - "Pentium-4" for the Intel Pentium 4. + - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D). + - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird). + - "Elan" for the AMD Elan. + - "Crusoe" for the Transmeta Crusoe series. + - "Winchip-C6" for original IDT Winchip. + - "Winchip-2/Winchip-2A/Winchip-3" for IDT Winchip CPUs + - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3. + - "VIA C3-2 Nehemiah" model 9 and above. + + If you don't know what to do, choose "386". + +config UC_CONFIG_GENERIC_386 + bool "Generic 386" + +config UC_CONFIG_386 + bool "386" + +config UC_CONFIG_486 + bool "486" + +config UC_CONFIG_586 + bool "Pentium/586/K5/5x86/6x86/6x86MX" + +config UC_CONFIG_586MMX + bool "Pentium-MMX" + +config UC_CONFIG_686 + bool "Pentium-Pro" + +config UC_CONFIG_PENTIUMII + bool "Celeron/Pentium-II" + +config UC_CONFIG_PENTIUMIII + bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon" + +config UC_CONFIG_PENTIUM4 + bool "Pentium-4/Celeron(P4-based)/Xeon" + +config UC_CONFIG_K6 + bool "K6/K6-II/K6-III" + +config UC_CONFIG_K7 + bool "Athlon/Duron/K7" + +config UC_CONFIG_ELAN + bool "Elan" + +config UC_CONFIG_CRUSOE + bool "Crusoe" + +config UC_CONFIG_WINCHIPC6 + bool "Winchip-C6" + +config UC_CONFIG_WINCHIP2 + bool "Winchip-2/Winchip-2A/Winchip-3" + +config UC_CONFIG_CYRIXIII + bool "CyrixIII/VIA-C3" + +config UC_CONFIG_NEHEMIAH + bool "VIA C3-2 (Nehemiah)" + +endchoice + diff --git a/config/uClibc-0.9.28/Config.i960 b/config/uClibc-0.9.28/Config.i960 new file mode 100644 index 0000000..9c743f8 --- /dev/null +++ b/config/uClibc-0.9.28/Config.i960 @@ -0,0 +1,34 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "i960" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + select UC_HAS_NO_THREADS + default n + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +config UC_ARCH_CFLAGS + string + default "-mh -mint32 -fsigned-char" + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_ARCH_HAS_C_SYMBOL_PREFIX + bool + default y + diff --git a/config/uClibc-0.9.28/Config.in b/config/uClibc-0.9.28/Config.in new file mode 100644 index 0000000..a3d6bf1 --- /dev/null +++ b/config/uClibc-0.9.28/Config.in @@ -0,0 +1,1361 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +choice + prompt "Target Architecture" + default UC_TARGET_i386 + help + Stuff + +config UC_TARGET_alpha + bool "alpha" + +config UC_TARGET_arm + bool "arm" + +config UC_TARGET_bfin + bool "bfin" + +config UC_TARGET_cris + bool "cris" + +config UC_TARGET_e1 + bool "e1" + +config UC_TARGET_frv + bool "frv" + +config UC_TARGET_h8300 + bool "h8300" + +config UC_TARGET_i386 + bool "i386" + +config UC_TARGET_i960 + bool "i960" + +config UC_TARGET_m68k + bool "m68k" + +config UC_TARGET_microblaze + bool "microblaze" + +config UC_TARGET_mips + bool "mips" + +config UC_TARGET_nios + bool "nios" + +config UC_TARGET_nios2 + bool "nios2" + +config UC_TARGET_powerpc + bool "powerpc" + +config UC_TARGET_sh + bool "superh" + +config UC_TARGET_sh64 + bool "sh64" + +config UC_TARGET_sparc + bool "sparc" + +config UC_TARGET_v850 + bool "v850" + +config UC_TARGET_x86_64 + bool "x86_64" + +endchoice + + +menu "Target Architecture Features and Options" + +if UC_TARGET_alpha +source "workspace/config/uClibc-0.9.28/Config.alpha" +endif + +if UC_TARGET_arm +source "workspace/config/uClibc-0.9.28/Config.arm" +endif + +if UC_TARGET_bfin +source "workspace/config/uClibc-0.9.28/Config.bfin" +endif + +if UC_TARGET_cris +source "workspace/config/uClibc-0.9.28/Config.cris" +endif + +if UC_TARGET_eUC_1 +source "workspace/config/uClibc-0.9.28/Config.e1" +endif + +if UC_TARGET_frv +source "workspace/config/uClibc-0.9.28/Config.frv" +endif + +if UC_TARGET_hUC_8300 +source "workspace/config/uClibc-0.9.28/Config.h8300" +endif + +if UC_TARGET_iUC_386 +source "workspace/config/uClibc-0.9.28/Config.i386" +endif + +if UC_TARGET_iUC_960 +source "workspace/config/uClibc-0.9.28/Config.i960" +endif + +if UC_TARGET_mUC_68k +source "workspace/config/uClibc-0.9.28/Config.m68k" +endif + +if UC_TARGET_nios +source "workspace/config/uClibc-0.9.28/Config.nios" +endif + +if UC_TARGET_niosUC_2 +source "workspace/config/uClibc-0.9.28/Config.nios2" +endif + +if UC_TARGET_microblaze +source "workspace/config/uClibc-0.9.28/Config.microblaze" +endif + +if UC_TARGET_mips +source "workspace/config/uClibc-0.9.28/Config.mips" +endif + +if UC_TARGET_powerpc +source "workspace/config/uClibc-0.9.28/Config.powerpc" +endif + +if UC_TARGET_sh +source "workspace/config/uClibc-0.9.28/Config.sh" +endif + +if UC_TARGET_shUC_64 +source "workspace/config/uClibc-0.9.28/Config.sh64" +endif + +if UC_TARGET_sparc +source "workspace/config/uClibc-0.9.28/Config.sparc" +endif + +if UC_TARGET_vUC_850 +source "workspace/config/uClibc-0.9.28/Config.v850" +endif + +if UC_TARGET_xUC_86_64 +source "workspace/config/uClibc-0.9.28/Config.x86_64" +endif + + +source "workspace/config/uClibc-0.9.28/Config.in.arch" + +endmenu + +menu "General Library Settings" + +config UC_HAVE_NO_PIC + bool + default n + +config UC_DOPIC + bool "Generate Position Independent Code (PIC)" + default y + depends !UC_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 UC_HAVE_NO_SHARED + bool + default n + +config UC_HAVE_SHARED + bool "Enable support for shared libraries" + depends on UC_DOPIC && !UC_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 UC_ARCH_HAS_NO_LDSO + bool + default n + +config UC_BUILD_UCLIBC_LDSO + bool "Compile native shared library loader" + depends on UC_HAVE_SHARED && !UC_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 UC_FORCE_SHAREABLE_TEXT_SEGMENTS + bool "Only load shared libraries which can share their text segment" + depends on UC_BUILD_UCLIBC_LDSO + 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 UC_LDSO_LDD_SUPPORT + bool "Native shared library loader 'ldd' support" + depends on UC_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 UC_LDSO_CACHE_SUPPORT + bool "Enable shared library loader cache" + depends on UC_BUILD_UCLIBC_LDSO + default y + help + Enable this to make use of /etc/ld.so.conf, the shared library loader + cache configuration file to support for non-standard library paths. + After updating this file, it is necessary to run 'ldconfig' to update + the /etc/ld.so.cache shared library loader cache file. + +config UC_LDSO_PRELOAD_FILE_SUPPORT + bool "Enable shared library loader preload file support" + depends on UC_BUILD_UCLIBC_LDSO + default n + help + Enable this to make use of /etc/ld.so.preload. This file contains a + whitespace separated list of shared libraries to be loaded before + the program. + +config UC_LDSO_BASE_FILENAME + string "Shared library loader naming prefix" + depends on UC_BUILD_UCLIBC_LDSO && (UC_LDSO_CACHE_SUPPORT || UC_LDSO_PRELOAD_FILE_SUPPORT) + default "ld.so" + help + If you wish to support both uClibc and glibc on the same system, it + is necessary to set this to something other than "ld.so" to avoid + conflicts with glibc, which also uses "ld.so". This prevents both + libraries from using the same /etc/ld.so.* files. If you wish to + support both uClibc and glibc on the same system then you should set + this to "ld-uClibc.so". + + Most people will leave this set to the default of "ld.so". + + WARNING: Changing the default prefix could cause problems with + binutils' ld ! + +config UC_LDSO_RUNPATH + bool "Enable ELF RUNPATH tag support" + depends on UC_BUILD_UCLIBC_LDSO + default y + help + ELF's may have dynamic RPATH/RUNPATH tags. These tags list paths + which extend the library search paths. They are really only useful + if a package installs libraries in non standard locations and + ld.so.conf support is disabled. + + Usage of RUNPATH tags is not too common, so disabling this feature + should be safe for most people. + +config UC_DL_FINI_CRT_COMPAT + bool "uClibc 0.9.27 compatibility" + default n + help + Allows to update a 0.9.27 based system to new crt/fini handling. + After rebuilding all apps, this option can be disabled. + +config UC_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 UC_HAS_NO_THREADS + bool + default n + +config UC_UCLIBC_HAS_THREADS + bool "POSIX Threading Support" + depends on !UC_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 UC_PTHREADS_DEBUG_SUPPORT + bool "Build pthreads debugging support" + default n + depends on UC_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 UC_UCLIBC_HAS_LFS + bool "Large File Support" + default y + 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 UC_Linux kernel (UC_2.UC_0.x) that lacks large file + support. Enabling this option will increase the size of uClibc. + +config UC_UCLIBC_STATIC_LDCONFIG + bool "Link ldconfig statically" + default y + help + Enable this option to statically link the ldconfig binary. + + Making ldconfig static can be beneficial if you have a library + problem and need to use ldconfig to recover. Sometimes, it is + preferable to instead keep the size of the system down, in which + case you should disable this option. + +choice + prompt "Malloc Implementation" + default MALLOC if ! UC_ARCH_HAS_MMU + default MALLOC_STANDARD if UC_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. + This uses only the mmap() system call to allocation memory, and does + not use the brk() system call at all, making it a fine choice for + MMU-less systems with very limited memory. 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 UC_MALLOC + bool "malloc" + +config UC_MALLOC_SIMPLE + bool "malloc-simple" + +config UC_MALLOC_STANDARD + bool "malloc-standard" + depends on UC_ARCH_HAS_MMU + +endchoice + +config UC_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 UC_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 UC_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 UC_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 UC_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 UC_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 UC_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 UC_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 UC_UCLIBC_HAS_TZ_FILE_READ_MANY + bool "Repeatedly read the '/etc/TZ' file" + depends on UC_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 UC_UCLIBC_TZ_FILE_PATH + string "Path to the 'TZ' file for setting the global timezone" + depends on UC_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 UC_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 UC_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 UC_UCLIBC_HAS_FULL_RPC + bool "Full RPC support" + depends on UC_UCLIBC_HAS_RPC + default y if !UC_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 UC_UCLIBC_HAS_STRING_GENERIC_OPT + bool "Use glibc generic string functions" + default y + help + Answer Y to use the (tweaked) glibc generic string functions. + In general, they are faster (but 3-5K larger) than the base + uClibc string functions which are optimized solely for size. + + Many people will answer Y. + +config UC_UCLIBC_HAS_STRING_ARCH_OPT + bool "Use arch-specific string functions" + default y + help + Answer Y to use the arch-specific string functions instead of the + base uClibc versions, which are optimized exclusively for size. + + Most people will answer Y, as this has been default behavior + for some time. + +config UC_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 UC_UCLIBC_HAS_CTYPE_SIGNED + bool "Support Signed Characters In 'ctype.h' Functions." + depends UC_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 UC_UCLIBC_HAS_CTYPE_TABLES + default UC_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 UC_UCLIBC_HAS_CTYPE_UNSAFE + bool "Do not check -- unsafe" + +config UC_UCLIBC_HAS_CTYPE_CHECKED + bool "Detect and handle appropriately" + +config UC_UCLIBC_HAS_CTYPE_ENFORCED + bool "Issue a diagnostic and abort()" + +endchoice + + +config UC_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 UC_UCLIBC_HAS_LOCALE + bool "Locale Support" + select UC_UCLIBC_HAS_WCHAR + select UC_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 UC_UCLIBC_PREGENERATED_LOCALE_DATA + bool "Use Pre-generated Locale Data" + depends on UC_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 UC_UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA + bool "Automagically Download the Pre-generated Locale Data (if necessary)" + depends on UC_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 UC_UCLIBC_HAS_XLOCALE + bool "Extended Locale Support (experimental/incomplete)" + depends on UC_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 UC_UCLIBC_HAS_HEXADECIMAL_FLOATS + bool "Support hexadecimal float notation" + depends UC_UCLIBC_HAS_CTYPE_TABLES + depends on UC_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 UC_UCLIBC_HAS_GLIBC_DIGIT_GROUPING + bool "Support glibc's \"'\" flag for allowing locale-specific digit grouping" + depends on UC_UCLIBC_HAS_LOCALE + depends on UC_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 UC_UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING + bool "Do not require digit grouping when the \"'\" flag is specified" + depends on UC_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 UC_UCLIBC_HAS_GLIBC_CUSTOM_PRINTF + bool "Support glibc's register_printf_function() (glibc-compat)" + depends on !UC_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 UC_USE_OLD_VFPRINTF + bool "Use the old vfprintf implementation" + depends on !UC_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 UC_UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS + int "Maximum number of positional args. Either 0 or >= 9." + depends on !UC_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 UC_UCLIBC_HAS_SCANF_GLIBC_A_FLAG + bool "Support glibc's 'a' flag for scanf string conversions (not implemented)" + default n + help + NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!! + NOTE!!! Conflicts with an ANSI/ISO C99 scanf flag!! 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 UC_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 UC_UCLIBC_HAS_STDIO_BUFSIZ_NONE + bool "none (WARNING - BUFSIZ will be 256 in stdio.h)" + depends !UC_UCLIBC_HAS_WCHAR + +config UC_UCLIBC_HAS_STDIO_BUFSIZ_256 + bool "256 (minimum ANSI/ISO C99 value)" + +config UC_UCLIBC_HAS_STDIO_BUFSIZ_512 + bool "512" + +config UC_UCLIBC_HAS_STDIO_BUFSIZ_1024 + bool "1024" + +config UC_UCLIBC_HAS_STDIO_BUFSIZ_2048 + bool "2048" + +config UC_UCLIBC_HAS_STDIO_BUFSIZ_4096 + bool "4096" + +config UC_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 !UC_UCLIBC_HAS_STDIO_BUFSIZ_NONE + default UC_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 UC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE + bool "None" + +config UC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 + bool "4" + +config UC_UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 + bool "8" + +# If you add more choices, you will need to update uClibc_stdio.h. + +endchoice + +config UC_UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT + bool "Attemt to shutdown stdio subsystem when abort() is called." + default n + help + ANSI/ISO C99 requires abort() to be asyn-signal-safe. So there was a behavioral + change made in SUSv3. Previously, abort() was required to have the affect of + fclose() on all open streams. The wording has been changed to "may" from "shall". + + Most people will answer N. + +config UC_UCLIBC_HAS_STDIO_GETC_MACRO + bool "Provide a macro version of getc()" + depends !UC_UCLIBC_HAS_STDIO_BUFSIZ_NONE + default y + help + Provide a macro version of getc(). + + Most people will answer Y. + +config UC_UCLIBC_HAS_STDIO_PUTC_MACRO + bool "Provide a macro version of putc()" + depends !UC_UCLIBC_HAS_STDIO_BUFSIZ_NONE + default y + help + Provide a macro version of putc(). + + Most people will answer Y. + +config UC_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 UC_UCLIBC_HAS_FOPEN_LARGEFILE_MODE + bool "Support an fopen() 'F' flag for large file mode (uClibc-specific)" + depends on UC_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 UC_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 UC_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 UC_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 UC_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 UC_UCLIBC_HAS_SYS_ERRLIST + bool "Support sys_errlist[] (obsolete-compat)" + depends on UC_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 UC_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 UC_UCLIBC_HAS_SYS_SIGLIST + bool "Support sys_siglist[] (bsd-compat)" + depends on UC_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 UC_UCLIBC_HAS_GETTEXT_AWARENESS + bool "Include gettext awareness" + depends on UC_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 UC_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 UC_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 UC_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 UC_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 UC_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 UC_SHARED_LIB_LOADER_PREFIX + string "Shared library loader path" + depends on UC_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 UC_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 UC_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 security related options" + +config UC_UCLIBC_SECURITY + bool "Enable security options" + default n + +config UC_UCLIBC_BUILD_PIE + bool "Build utilities as ET_DYN/PIE executables" + depends on UC_UCLIBC_SECURITY + depends on UC_HAVE_SHARED + depends on UC_TARGET_arm || UC_TARGET_frv || UC_TARGET_iUC_386 || UC_TARGET_mips || UC_TARGET_powerpc + select UC_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 (for arm 2.16) 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 UC_UCLIBC_HAS_SSP + bool "Support for propolice smashing stack protector" + depends on UC_UCLIBC_SECURITY + default n + help + Add propolice smashing stack protector to the library. + This requires a patched version of GCC, supporting the + -fstack-protector[-all] options, with the __guard and + __stack_smash_handler functions removed from libgcc. + These functions are added to libc instead. + More information at: + <http://www.research.ibm.com/trl/projects/security/ssp/> + Most people will answer N. + +config UC_SSP_QUICK_CANARY + bool "Use simple guard values without accessing /dev/urandom" + depends on UC_UCLIBC_HAS_SSP + default n + help + Use gettimeofday(2) to define the __guard without accessing + /dev/urandom. + WARNING: This makes smashing stack protector vulnerable to timing + attacks. + Most people will answer N. + +config UC_SSP_USE_ERANDOM + bool "Use erandom for setting guard value if /dev/urandom fails" + depends on UC_UCLIBC_HAS_SSP && !UC_SSP_QUICK_CANARY + default n + help + Use /dev/erandom to define the guard if /dev/urandom fails (chroot). + This requires a modified kernel. + More information at: + <http://frandom.sourceforge.net/> + Most people will answer N. + +choice + prompt "Propolice protection blocking signal" + depends on UC_UCLIBC_HAS_SSP + default PROPOLICE_BLOCK_ABRT if ! UC_DODEBUG + default PROPOLICE_BLOCK_SEGV if UC_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 UC_PROPOLICE_BLOCK_ABRT + bool "abort" + +config UC_PROPOLICE_BLOCK_SEGV + bool "segfault" + +config UC_PROPOLICE_BLOCK_KILL + bool "kill" + +endchoice + +config UC_UCLIBC_BUILD_SSP + bool "Build uClibc with propolice protection" + depends on UC_UCLIBC_HAS_SSP + default n + help + Build all libraries and executables with propolice protection enabled. + +config UC_UCLIBC_BUILD_RELRO + bool "Build uClibc with RELRO" + depends on UC_UCLIBC_SECURITY + depends on UC_BUILD_UCLIBC_LDSO + default y + help + Build all libraries and executables with -z relro. + +config UC_UCLIBC_BUILD_NOW + bool "Build uClibc with NOW" + depends on UC_UCLIBC_SECURITY + depends on UC_BUILD_UCLIBC_LDSO + default y + help + Build all libraries and executables with -z now. + +config UC_UCLIBC_BUILD_NOEXECSTACK + bool "Build uClibc with noexecstack marking" + depends on UC_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. + +endmenu + +menu "uClibc development/debugging options" + +config UC_CROSS_COMPILER_PREFIX + string "Cross-compiling toolchain prefix" + default "" + help + The prefix used to execute your cross-compiling toolchain. For + example, if you run 'arm-linux-uclibc-gcc' to compile something, + then enter 'arm-linux-uclibc-' here. + +config UC_DODEBUG + bool "Build uClibc with debugging symbols" + select UC_PTHREADS_DEBUG_SUPPORT if UCLIBC_HAS_THREADS + 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 UC_DODEBUG_PT + bool "Build pthread with debugging output" + depends on UC_UCLIBC_HAS_THREADS + default n + help + Enable debug output in libpthread. This is only useful when doing + development in libpthread itself. + + Otherwise, answer N. + +config UC_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 UC_SUPPORT_LD_DEBUG + bool "Build the shared library loader with debugging support" + depends on UC_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 UC_SUPPORT_LD_DEBUG_EARLY + bool "Build the shared library loader with early debugging support" + depends on UC_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 UC_UCLIBC_MALLOC_DEBUGGING + bool "Build malloc with debugging support" + depends UC_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 UC_WARNINGS + string "Compiler Warnings" + default "-Wall" + help + Set this to the set of gcc warnings you wish to see while compiling. + +config UC_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 diff --git a/config/uClibc-0.9.28/Config.in.arch b/config/uClibc-0.9.28/Config.in.arch new file mode 100644 index 0000000..cf41b99 --- /dev/null +++ b/config/uClibc-0.9.28/Config.in.arch @@ -0,0 +1,113 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +choice + prompt "Target Processor Endianness" + help + This is the endianness you wish to build use. Choose either Big + Endian, or Little Endian. + +config UC_ARCH_LITTLE_ENDIAN + bool "Little Endian" + depends on UC_ARCH_SUPPORTS_LITTLE_ENDIAN + +config UC_ARCH_BIG_ENDIAN + bool "Big Endian" + depends on UC_ARCH_SUPPORTS_BIG_ENDIAN + +endchoice + +config UC_ARCH_HAS_NO_MMU + bool + default n + +config UC_ARCH_HAS_MMU + bool "Target CPU has a memory management unit (MMU)" + default y + depends !UC_ARCH_HAS_NO_MMU + help + If your target CPU does not have a memory management unit (MMU), + then answer N here. Normally, Linux runs on systems with an MMU. + If you are building a uClinux system, answer N. + + Most people will answer Y. + +config UC_UCLIBC_HAS_FLOATS + bool "Enable floating point number support" + default y + help + This option allows you to entirely omit all floating point number + support from uClibc. This will cause floating point functions like + strtod() to be omitted from uClibc. Other floating point functions, + such as printf() and scanf() will still be included in the library, + but will not contain support for floating point numbers. + + Answering N to this option can reduce the size of uClibc. Most people + will answer Y. + +config UC_HAS_FPU + bool "Target CPU has a floating point unit (FPU)" + depends on UC_UCLIBC_HAS_FLOATS + default y + help + If your target CPU does not have a Floating Point Unit (FPU) or a + kernel FPU emulator, but you still wish to support floating point + functions, then uClibc will need to be compiled with soft floating + point support (-msoft-float). If your target CPU does not have an + FPU or an FPU emulator within the Linux kernel, then you should + answer N. + + Most people will answer Y. + +config UC_UCLIBC_HAS_SOFT_FLOAT + bool + depends on UC_UCLIBC_HAS_FLOATS && !UC_HAS_FPU + default y + +config UC_DO_C99_MATH + bool "Enable full C99 math library support" + depends on UC_UCLIBC_HAS_FLOATS + default n + help + If you want the uClibc math library to contain the full set C99 + math library features, then answer Y. If you leave this set to + N the math library will contain only the math functions that were + listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard. + Leaving this option set to N will save around 35k on an x86 system. + + If your applications require the newer C99 math library functions, + then answer Y. + +config UC_KERNEL_SOURCE + string "Linux kernel header location" + default "/usr/src/linux" + help + The kernel source you use to compile with should be the same as the + Linux kernel you run your apps on. uClibc doesn't even try to achieve binary + compatibility across kernel versions. So don't expect, for example, uClibc + compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x + can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers, + but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't + work at all. You have been warned. + +config UC_UCLIBC_UCLINUX_BROKEN_MUNMAP + bool + depends on !UC_ARCH_HAS_MMU + default y + +config UC_EXCLUDE_BRK + bool + depends on !UC_ARCH_HAS_MMU + default y + +config UC_C_SYMBOL_PREFIX + string + default "_" if UC_ARCH_HAS_C_SYMBOL_PREFIX + default "" if !UC_ARCH_HAS_C_SYMBOL_PREFIX + +config UC_HAVE_DOT_CONFIG + bool + default y + diff --git a/config/uClibc-0.9.28/Config.m68k b/config/uClibc-0.9.28/Config.m68k new file mode 100644 index 0000000..7d9b6c9 --- /dev/null +++ b/config/uClibc-0.9.28/Config.m68k @@ -0,0 +1,30 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "m68k" + +config UC_HAVE_ELF + bool + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_CFLAGS + string + default "-Wa,--bitwise-or" + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_HAVE_ELF + bool + default y + diff --git a/config/uClibc-0.9.28/Config.microblaze b/config/uClibc-0.9.28/Config.microblaze new file mode 100644 index 0000000..d62c15d --- /dev/null +++ b/config/uClibc-0.9.28/Config.microblaze @@ -0,0 +1,33 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "microblaze" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_HAS_C_SYMBOL_PREFIX + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_CROSS + string + default "mb-" + diff --git a/config/uClibc-0.9.28/Config.mips b/config/uClibc-0.9.28/Config.mips new file mode 100644 index 0000000..4806b26 --- /dev/null +++ b/config/uClibc-0.9.28/Config.mips @@ -0,0 +1,66 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "mips" + +config UC_HAVE_ELF + bool + default y + +config UC_ARCH_CFLAGS + string + default "-mno-split-addresses" + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +choice + prompt "Target Processor Architecture" + default UC_CONFIG_MIPS_ISA_1 + help + This selects the instruction set architecture of your MIPS CPU. This + information is used for optimizing purposes. To build a library that + will run on any MIPS CPU, you can specify "Generic (MIPS I)" here. + If you pick anything other than "Generic (MIPS I)," there is no + guarantee that uClibc will even run on anything other than the + selected processor type. + + You should probably select the MIPS ISA that best matches the + CPU you will be using on your device. uClibc will be tuned + for that architecture. + + If you don't know what to do, choose "Generic (MIPS I)" + +config UC_CONFIG_MIPS_ISA_1 + bool "Generic (MIPS I)" + +config UC_CONFIG_MIPS_ISA_2 + bool "MIPS II" + +config UC_CONFIG_MIPS_ISA_3 + bool "MIPS III" + +config UC_CONFIG_MIPS_ISA_4 + bool "MIPS IV" + +config UC_CONFIG_MIPS_ISA_MIPS32 + bool "MIPS32" + +config UC_CONFIG_MIPS_ISA_MIPS64 + bool "MIPS64" + +endchoice diff --git a/config/uClibc-0.9.28/Config.nios b/config/uClibc-0.9.28/Config.nios new file mode 100644 index 0000000..9dd82d0 --- /dev/null +++ b/config/uClibc-0.9.28/Config.nios @@ -0,0 +1,31 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "nios" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_LITTLE_ENDIAN + select UC_HAVE_NO_PIC + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + default y + +config UC_ARCH_CFLAGS + string + default "-m32 -funaligned-struct-hack" + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_CROSS + string + default nios-elf- + diff --git a/config/uClibc-0.9.28/Config.nios2 b/config/uClibc-0.9.28/Config.nios2 new file mode 100644 index 0000000..28c2024 --- /dev/null +++ b/config/uClibc-0.9.28/Config.nios2 @@ -0,0 +1,30 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "nios2" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_LITTLE_ENDIAN + select UC_HAVE_NO_PIC + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_CROSS + string + default nios2-elf- + diff --git a/config/uClibc-0.9.28/Config.powerpc b/config/uClibc-0.9.28/Config.powerpc new file mode 100644 index 0000000..af1d9ba --- /dev/null +++ b/config/uClibc-0.9.28/Config.powerpc @@ -0,0 +1,26 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "powerpc" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_MMU + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + diff --git a/config/uClibc-0.9.28/Config.sh b/config/uClibc-0.9.28/Config.sh new file mode 100644 index 0000000..bbd4066 --- /dev/null +++ b/config/uClibc-0.9.28/Config.sh @@ -0,0 +1,69 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "sh" + +config UC_HAVE_ELF + bool + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_HAVE_DOT_HIDDEN + bool + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +choice + prompt "Target Processor Type" + default UC_CONFIG_SH4 + help + This is the processor type of your CPU. This information is used for + optimizing purposes, as well as to determine if your CPU has an MMU, + an FPU, etc. If you pick the wrong CPU type, there is no guarantee + that uClibc will work at all.... + + Here are the available choices: + - "SH2A" Renesas SH-2A (SH7206) + - "SH2" SuperH SH-2 + - "SH3" SuperH SH-3 + - "SH4" SuperH SH-4 + +config UC_CONFIG_SH2A + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_HAS_NO_LDSO + select UC_HAVE_NO_PIC + bool "SH2A" + +config UC_CONFIG_SH2 + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_HAS_NO_LDSO + bool "SH2" + +config UC_CONFIG_SH3 + select UC_ARCH_HAS_MMU + bool "SH3" + +config UC_CONFIG_SH4 + select UC_FORCE_SHAREABLE_TEXT_SEGMENTS + bool "SH4" + +endchoice + diff --git a/config/uClibc-0.9.28/Config.sh64 b/config/uClibc-0.9.28/Config.sh64 new file mode 100644 index 0000000..ba2f21a --- /dev/null +++ b/config/uClibc-0.9.28/Config.sh64 @@ -0,0 +1,52 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "sh64" + +config UC_HAVE_ELF + bool + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_HAVE_DOT_HIDDEN + bool + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +choice + prompt "Target Processor Type" + default UC_CONFIG_SH5 + help + This is the processor type of your CPU. This information is used for + optimizing purposes, as well as to determine if your CPU has an MMU, + an FPU, etc. If you pick the wrong CPU type, there is no guarantee + that uClibc will work at all.... + + Here are the available choices: + - "SH5" SuperH SH-5 101, 103 + +config UC_CONFIG_SH5 + select UC_ARCH_HAS_MMU + select UC_UCLIBC_HAS_LFS + bool "SH5" + +endchoice + diff --git a/config/uClibc-0.9.28/Config.sparc b/config/uClibc-0.9.28/Config.sparc new file mode 100644 index 0000000..6bcf5a3 --- /dev/null +++ b/config/uClibc-0.9.28/Config.sparc @@ -0,0 +1,25 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "sparc" + +config UC_HAVE_ELF + bool + default y + +config UC_ARCH_SUPPORTS_BIG_ENDIAN + bool + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + diff --git a/config/uClibc-0.9.28/Config.v850 b/config/uClibc-0.9.28/Config.v850 new file mode 100644 index 0000000..0c1f328 --- /dev/null +++ b/config/uClibc-0.9.28/Config.v850 @@ -0,0 +1,34 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_TARGET_ARCH + default "v850" + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_NO_MMU + select UC_ARCH_HAS_C_SYMBOL_PREFIX + select UC_HAVE_NO_PIC + select UC_HAVE_NO_SHARED + select UC_ARCH_HAS_NO_LDSO + default y + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_CROSS + string + default "v850e-elf-" + diff --git a/config/uClibc-0.9.28/Config.x86_64 b/config/uClibc-0.9.28/Config.x86_64 new file mode 100644 index 0000000..f3d7f7f --- /dev/null +++ b/config/uClibc-0.9.28/Config.x86_64 @@ -0,0 +1,28 @@ +# +# For a description of the syntax of this configuration file, +# see extra/config/Kconfig-language.txt +# + +config UC_HAVE_ELF + bool + select UC_ARCH_HAS_MMU + select UC_HAS_NO_THREADS + default y + +config UC_TARGET_ARCH + string + default "x86_64" + +config UC_ARCH_CFLAGS + string + +config UC_ARCH_LDFLAGS + string + +config UC_LIBGCC_CFLAGS + string + +config UC_ARCH_SUPPORTS_LITTLE_ENDIAN + bool + default y + |