diff mbox

[OpenWrt-Devel] toolchain/uClibc: add support of uClibc-ng

Message ID 1440612682-13834-1-git-send-email-abrodkin@synopsys.com
State Accepted
Headers show

Commit Message

Alexey Brodkin Aug. 26, 2015, 6:11 p.m. UTC
uClibc-ng is a spin-off of original uClibc, see http://www.uclibc-ng.org/

We try to regularly add changes from uClibc to uClibc-ng.
We even sent patches and bug reports to the uClibc mailing list.
The config file is compatible between uClibc-ng 1.0 and uClibc git master.
This might change in the future.

Our main goal is to provide regularly a stable and tested release
to make embedded system developers happy.

The main advantage of uClibc-ng over olde good uClibc is regular releases
so there's no need to keep tons of patches on top of years old
0.9.33.2

Build-tested for
 [1] ARM: Sunxi generic
 [2] MIPS: Netgear WNDR3600/3700/3800

Run-tested for [yet out of the tree] Synopsys Designware ARC AXS101.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Waldemar Brodkorb <wbx@uclibc-ng.org>
Cc: Mathieu Olivari <mathieu@codeaurora.org>
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: John Crispin <blogic@openwrt.org>
---
 toolchain/uClibc/Config.in                     |   4 +
 toolchain/uClibc/Config.version                |   4 +
 toolchain/uClibc/common.mk                     |  15 +-
 toolchain/uClibc/config-ng-1.0.6/arm           |   9 +
 toolchain/uClibc/config-ng-1.0.6/armeb         |   9 +
 toolchain/uClibc/config-ng-1.0.6/common        | 223 +++++++++++++++++++++++++
 toolchain/uClibc/config-ng-1.0.6/debug         |   6 +
 toolchain/uClibc/config-ng-1.0.6/i386          |  21 +++
 toolchain/uClibc/config-ng-1.0.6/i686          |  21 +++
 toolchain/uClibc/config-ng-1.0.6/m68k          |   6 +
 toolchain/uClibc/config-ng-1.0.6/mips          |  18 ++
 toolchain/uClibc/config-ng-1.0.6/mips64        |  18 ++
 toolchain/uClibc/config-ng-1.0.6/mips64.32     |  19 +++
 toolchain/uClibc/config-ng-1.0.6/mips64.64     |  19 +++
 toolchain/uClibc/config-ng-1.0.6/mips64.n32    |  19 +++
 toolchain/uClibc/config-ng-1.0.6/mips64el      |  18 ++
 toolchain/uClibc/config-ng-1.0.6/mips64el.32   |  19 +++
 toolchain/uClibc/config-ng-1.0.6/mips64el.64   |  19 +++
 toolchain/uClibc/config-ng-1.0.6/mips64el.n32  |  19 +++
 toolchain/uClibc/config-ng-1.0.6/mipsel        |  18 ++
 toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt |  18 ++
 toolchain/uClibc/config-ng-1.0.6/powerpc       |   6 +
 toolchain/uClibc/config-ng-1.0.6/powerpc.e500  |   6 +
 toolchain/uClibc/config-ng-1.0.6/sparc         |   8 +
 toolchain/uClibc/config-ng-1.0.6/sparc.leon    |   8 +
 toolchain/uClibc/config-ng-1.0.6/x86_64        |   6 +
 26 files changed, 553 insertions(+), 3 deletions(-)
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/arm
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/armeb
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/common
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/debug
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/i386
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/i686
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/m68k
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64.32
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64.64
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64.n32
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el.32
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el.64
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el.n32
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mipsel
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/powerpc
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/powerpc.e500
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/sparc
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/sparc.leon
 create mode 100644 toolchain/uClibc/config-ng-1.0.6/x86_64

Comments

John Crispin Aug. 26, 2015, 6:20 p.m. UTC | #1
Hi,

On 26/08/2015 20:11, Alexey Brodkin wrote:
> uClibc-ng is a spin-off of original uClibc, see http://www.uclibc-ng.org/
> 
> We try to regularly add changes from uClibc to uClibc-ng.
> We even sent patches and bug reports to the uClibc mailing list.
> The config file is compatible between uClibc-ng 1.0 and uClibc git master.
> This might change in the future.
> 
> Our main goal is to provide regularly a stable and tested release
> to make embedded system developers happy.
> 
> The main advantage of uClibc-ng over olde good uClibc is regular releases
> so there's no need to keep tons of patches on top of years old
> 0.9.33.2
> 

why do you not use musl ? it is actively support rather than being
hooked on life support.

	John



> Build-tested for
>  [1] ARM: Sunxi generic
>  [2] MIPS: Netgear WNDR3600/3700/3800
> 
> Run-tested for [yet out of the tree] Synopsys Designware ARC AXS101.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Waldemar Brodkorb <wbx@uclibc-ng.org>
> Cc: Mathieu Olivari <mathieu@codeaurora.org>
> Cc: Felix Fietkau <nbd@openwrt.org>
> Cc: John Crispin <blogic@openwrt.org>
> ---
>  toolchain/uClibc/Config.in                     |   4 +
>  toolchain/uClibc/Config.version                |   4 +
>  toolchain/uClibc/common.mk                     |  15 +-
>  toolchain/uClibc/config-ng-1.0.6/arm           |   9 +
>  toolchain/uClibc/config-ng-1.0.6/armeb         |   9 +
>  toolchain/uClibc/config-ng-1.0.6/common        | 223 +++++++++++++++++++++++++
>  toolchain/uClibc/config-ng-1.0.6/debug         |   6 +
>  toolchain/uClibc/config-ng-1.0.6/i386          |  21 +++
>  toolchain/uClibc/config-ng-1.0.6/i686          |  21 +++
>  toolchain/uClibc/config-ng-1.0.6/m68k          |   6 +
>  toolchain/uClibc/config-ng-1.0.6/mips          |  18 ++
>  toolchain/uClibc/config-ng-1.0.6/mips64        |  18 ++
>  toolchain/uClibc/config-ng-1.0.6/mips64.32     |  19 +++
>  toolchain/uClibc/config-ng-1.0.6/mips64.64     |  19 +++
>  toolchain/uClibc/config-ng-1.0.6/mips64.n32    |  19 +++
>  toolchain/uClibc/config-ng-1.0.6/mips64el      |  18 ++
>  toolchain/uClibc/config-ng-1.0.6/mips64el.32   |  19 +++
>  toolchain/uClibc/config-ng-1.0.6/mips64el.64   |  19 +++
>  toolchain/uClibc/config-ng-1.0.6/mips64el.n32  |  19 +++
>  toolchain/uClibc/config-ng-1.0.6/mipsel        |  18 ++
>  toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt |  18 ++
>  toolchain/uClibc/config-ng-1.0.6/powerpc       |   6 +
>  toolchain/uClibc/config-ng-1.0.6/powerpc.e500  |   6 +
>  toolchain/uClibc/config-ng-1.0.6/sparc         |   8 +
>  toolchain/uClibc/config-ng-1.0.6/sparc.leon    |   8 +
>  toolchain/uClibc/config-ng-1.0.6/x86_64        |   6 +
>  26 files changed, 553 insertions(+), 3 deletions(-)
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/arm
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/armeb
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/common
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/debug
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/i386
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/i686
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/m68k
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64.32
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64.64
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64.n32
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el.32
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el.64
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mips64el.n32
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mipsel
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/powerpc
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/powerpc.e500
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/sparc
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/sparc.leon
>  create mode 100644 toolchain/uClibc/config-ng-1.0.6/x86_64
> 
> diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
> index 08ea00a..c923bc0 100644
> --- a/toolchain/uClibc/Config.in
> +++ b/toolchain/uClibc/Config.in
> @@ -11,6 +11,10 @@ choice
>  		select UCLIBC_VERSION_0_9_33
>  		bool "uClibc 0.9.33.2"
>  
> +	config UCLIBC_USE_VERSION_NG
> +		select UCLIBC_VERSION_NG
> +		bool "uClibc-ng"
> +
>  endchoice
>  
>  # Debug version.
> diff --git a/toolchain/uClibc/Config.version b/toolchain/uClibc/Config.version
> index dd302f2..b6aa471 100644
> --- a/toolchain/uClibc/Config.version
> +++ b/toolchain/uClibc/Config.version
> @@ -2,8 +2,12 @@ config UCLIBC_VERSION
>  	string
>  	depends on USE_UCLIBC
>  	default "0.9.33.2"       if UCLIBC_VERSION_0_9_33
> +	default "1.0.6"          if UCLIBC_VERSION_NG
>  	default "0.9.33.2"
>  
>  config UCLIBC_VERSION_0_9_33
>  	default y if !TOOLCHAINOPTS && USE_UCLIBC
>  	bool
> +
> +config UCLIBC_VERSION_NG
> +	bool
> diff --git a/toolchain/uClibc/common.mk b/toolchain/uClibc/common.mk
> index 53a8443..026d69d 100644
> --- a/toolchain/uClibc/common.mk
> +++ b/toolchain/uClibc/common.mk
> @@ -7,15 +7,24 @@
>  include $(TOPDIR)/rules.mk
>  include $(INCLUDE_DIR)/target.mk
>  
> -PKG_NAME:=uClibc
>  PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
> +
> +ifeq ($(CONFIG_UCLIBC_VERSION_NG),y)
> +PKG_NAME:=uClibc-ng
> +PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/
> +PATCH_DIR:=$(PATH_PREFIX)/patches-ng-$(PKG_VERSION)
> +CONFIG_DIR:=$(PATH_PREFIX)/config-ng-$(PKG_VERSION)
> +else
> +PKG_NAME:=uClibc
>  PKG_SOURCE_URL:=http://www.uclibc.org/downloads
> -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
> -LIBC_SO_VERSION:=$(PKG_VERSION)
>  PATCH_DIR:=$(PATH_PREFIX)/patches-$(PKG_VERSION)
>  CONFIG_DIR:=$(PATH_PREFIX)/config-$(PKG_VERSION)
> +endif
> +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
> +LIBC_SO_VERSION:=$(PKG_VERSION)
>  
>  PKG_MD5SUM_0.9.33.2 = a338aaffc56f0f5040e6d9fa8a12eda1
> +PKG_MD5SUM_1.0.6 = dfcc780bf2c7e2e42209bbb572e035cf
>  PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION))
>  
>  HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)
> diff --git a/toolchain/uClibc/config-ng-1.0.6/arm b/toolchain/uClibc/config-ng-1.0.6/arm
> new file mode 100644
> index 0000000..41a60b1
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/arm
> @@ -0,0 +1,9 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# COMPILE_IN_THUMB_MODE is not set
> +TARGET_ARCH="arm"
> +TARGET_arm=y
> +# USE_BX is not set
> +CONFIG_ARM_EABI=y
> +
> diff --git a/toolchain/uClibc/config-ng-1.0.6/armeb b/toolchain/uClibc/config-ng-1.0.6/armeb
> new file mode 100644
> index 0000000..2e46dd6
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/armeb
> @@ -0,0 +1,9 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_BIG_ENDIAN=y
> +ARCH_WANTS_BIG_ENDIAN=y
> +# COMPILE_IN_THUMB_MODE is not set
> +TARGET_ARCH="arm"
> +TARGET_arm=y
> +# USE_BX is not set
> +CONFIG_ARM_EABI=y
> +
> diff --git a/toolchain/uClibc/config-ng-1.0.6/common b/toolchain/uClibc/config-ng-1.0.6/common
> new file mode 100644
> index 0000000..ddaf600
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/common
> @@ -0,0 +1,223 @@
> +# ARCH_ANY_ENDIAN is not set
> +ARCH_HAS_MMU=y
> +# ARCH_HAS_NO_LDSO is not set
> +# ARCH_HAS_NO_SHARED is not set
> +# ARCH_LITTLE_ENDIAN is not set
> +ARCH_USE_MMU=y
> +# ARCH_WANTS_BIG_ENDIAN is not set
> +# ARCH_WANTS_LITTLE_ENDIAN is not set
> +ASSUME_DEVPTS=y
> +# COMPAT_ATEXIT is not set
> +CROSS_COMPILER_PREFIX=""
> +DEVEL_PREFIX="/usr/"
> +# DOASSERTS is not set
> +# DODEBUG is not set
> +# DODEBUG_PT is not set
> +# DOMULTI is not set
> +DOPIC=y
> +DOSTRIP=y
> +DO_C99_MATH=y
> +# DO_XSI_MATH is not set
> +# EXTRA_WARNINGS is not set
> +FORCE_OPTIONS_FOR_ARCH=y
> +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
> +# HARDWIRED_ABSPATH is not set
> +# HAS_NO_THREADS is not set
> +HAVE_DOT_CONFIG=y
> +# HAVE_NO_PIC is not set
> +# HAVE_NO_SSP is not set
> +HAVE_SHARED=y
> +KERNEL_HEADERS="."
> +LDSO_BASE_FILENAME="ld.so"
> +LDSO_CACHE_SUPPORT=y
> +# LDSO_GNU_HASH_SUPPORT is not set
> +LDSO_LD_LIBRARY_PATH=y
> +LDSO_LDD_SUPPORT=y
> +# LDSO_NO_CLEANUP is not set
> +# LDSO_PRELINK_SUPPORT is not set
> +# LDSO_PRELOAD_FILE_SUPPORT is not set
> +LDSO_PRELOAD_ENV_SUPPORT=y
> +LDSO_RUNPATH=y
> +LDSO_SAFE_RUNPATH=y
> +# LDSO_RUNPATH_OF_EXECUTABLE is not set
> +# LDSO_SEARCH_INTERP_PATH is not set
> +# LDSO_STANDALONE_SUPPORT is not set
> +# LINUXTHREADS_NEW is not set
> +# LINUXTHREADS_OLD is not set
> +# UCLIBC_HAS_BACKTRACE is not set
> +UCLIBC_HAS_THREADS_NATIVE=y
> +# MALLOC is not set
> +MALLOC_GLIBC_COMPAT=y
> +# MALLOC_SIMPLE is not set
> +MALLOC_STANDARD=y
> +MULTILIB_DIR="lib"
> +PTHREADS_DEBUG_SUPPORT=y
> +RUNTIME_PREFIX="/"
> +# SUPPORT_LD_DEBUG is not set
> +# SUPPORT_LD_DEBUG_EARLY is not set
> +TARGET_SUBARCH=""
> +# TARGET_alpha is not set
> +# TARGET_arc is not set
> +# TARGET_arm is not set
> +# TARGET_avr32 is not set
> +# TARGET_bfin is not set
> +# TARGET_c6x is not set
> +# TARGET_cris is not set
> +# TARGET_e1 is not set
> +# TARGET_frv is not set
> +# TARGET_h8300 is not set
> +# TARGET_hppa is not set
> +# TARGET_i386 is not set
> +# TARGET_i960 is not set
> +# TARGET_ia64 is not set
> +# TARGET_m68k is not set
> +# TARGET_metag is not set
> +# TARGET_microblaze is not set
> +# TARGET_mips is not set
> +# TARGET_nios is not set
> +# TARGET_nios2 is not set
> +# TARGET_powerpc is not set
> +# TARGET_sh is not set
> +# TARGET_sh64 is not set
> +# TARGET_sparc is not set
> +# TARGET_v850 is not set
> +# TARGET_vax is not set
> +# TARGET_x86_64 is not set
> +# TARGET_xtensa is not set
> +UCLIBC_BSD_SPECIFIC=y
> +UCLIBC_BUILD_NOEXECSTACK=y
> +# UCLIBC_BUILD_NOW is not set
> +# UCLIBC_BUILD_PIE is not set
> +UCLIBC_BUILD_RELRO=y
> +UCLIBC_CTOR_DTOR=y
> +UCLIBC_DYNAMIC_ATEXIT=y
> +UCLIBC_EXTRA_CFLAGS=""
> +UCLIBC_GRP_BUFFER_SIZE=256
> +UCLIBC_HAS_ADVANCED_REALTIME=y
> +# UCLIBC_HAS_ARC4RANDOM is not set
> +UCLIBC_HAS_BSD_ERR=y
> +UCLIBC_HAS_BSD_RES_CLOSE=y
> +# UCLIBC_HAS_COMPAT_RES_STATE is not set
> +UCLIBC_HAS_CRYPT=y
> +UCLIBC_HAS_CRYPT_IMPL=y
> +UCLIBC_HAS_CTYPE_CHECKED=y
> +# UCLIBC_HAS_CTYPE_ENFORCED is not set
> +UCLIBC_HAS_CTYPE_SIGNED=y
> +UCLIBC_HAS_CTYPE_TABLES=y
> +# UCLIBC_HAS_CTYPE_UNSAFE is not set
> +UCLIBC_HAS_EPOLL=y
> +UCLIBC_HAS_ERRNO_MESSAGES=y
> +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
> +# UCLIBC_HAS_FENV is not set
> +UCLIBC_HAS_FLOATS=y
> +UCLIBC_HAS_FNMATCH=y
> +UCLIBC_HAS_FNMATCH_OLD=y
> +# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set
> +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
> +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
> +# UCLIBC_HAS_FPU is not set
> +UCLIBC_HAS_FTS=y
> +UCLIBC_HAS_FTW=y
> +# UCLIBC_HAS_FULL_RPC is not set
> +UCLIBC_HAS_GETPT=y
> +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
> +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
> +# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
> +UCLIBC_HAS_GLOB=y
> +UCLIBC_HAS_GNU_ERROR=y
> +UCLIBC_HAS_GNU_GETOPT=y
> +UCLIBC_HAS_GNU_GETSUBOPT=y
> +UCLIBC_HAS_GNU_GLOB=y
> +UCLIBC_HAS_HEXADECIMAL_FLOATS=y
> +UCLIBC_HAS_IPV4=y
> +UCLIBC_HAS_IPV6=y
> +UCLIBC_HAS_LFS=y
> +UCLIBC_HAS_LIBNSL_STUB=y
> +UCLIBC_HAS_LIBRESOLV_STUB=y
> +UCLIBC_HAS_LIBUTIL=y
> +# UCLIBC_HAS_LOCALE is not set
> +# UCLIBC_BUILD_ALL_LOCALE is not set
> +# UCLIBC_BUILD_MINIMAL_LOCALE is not set
> +# UCLIBC_PREGENERATED_LOCALE_DATA is not set
> +UCLIBC_HAS_LONG_DOUBLE_MATH=y
> +UCLIBC_HAS_NETWORK_SUPPORT=y
> +UCLIBC_HAS_NFTW=y
> +# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
> +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
> +UCLIBC_HAS_PRINTF_M_SPEC=y
> +# UCLIBC_HAS_PROFILING is not set
> +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
> +UCLIBC_HAS_PTY=y
> +UCLIBC_HAS_REALTIME=y
> +# UCLIBC_HAS_REENTRANT_RPC is not set
> +UCLIBC_HAS_REGEX=y
> +UCLIBC_HAS_REGEX_OLD=y
> +UCLIBC_HAS_RESOLVER_SUPPORT=y
> +# UCLIBC_HAS_RPC is not set
> +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
> +# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set
> +# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set
> +UCLIBC_HAS_SHADOW=y
> +UCLIBC_HAS_SIGNUM_MESSAGES=y
> +UCLIBC_HAS_SOCKET=y
> +UCLIBC_HAS_SOFT_FLOAT=y
> +# UCLIBC_HAS_SSP is not set
> +# UCLIBC_HAS_SSP_COMPAT is not set
> +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
> +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
> +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
> +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
> +UCLIBC_HAS_STDIO_BUFSIZ_4096=y
> +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
> +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
> +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
> +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
> +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
> +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
> +UCLIBC_HAS_STDIO_GETC_MACRO=y
> +UCLIBC_HAS_STDIO_PUTC_MACRO=y
> +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
> +UCLIBC_HAS_STRING_ARCH_OPT=y
> +UCLIBC_HAS_STRING_GENERIC_OPT=y
> +# UCLIBC_HAS_STUBS is not set
> +UCLIBC_HAS_SYSLOG=y
> +# UCLIBC_HAS_SYS_ERRLIST is not set
> +# UCLIBC_HAS_SYS_SIGLIST is not set
> +UCLIBC_HAS_THREADS=y
> +UCLIBC_HAS_TM_EXTENSIONS=y
> +UCLIBC_HAS_TZ_CACHING=y
> +UCLIBC_HAS_TZ_FILE=y
> +UCLIBC_HAS_TZ_FILE_READ_MANY=y
> +UCLIBC_HAS_UTMPX=y
> +UCLIBC_HAS_UTMP=y
> +UCLIBC_HAS_WCHAR=y
> +UCLIBC_HAS_WORDEXP=y
> +# UCLIBC_HAS_XATTR is not set
> +# UCLIBC_HAS_XLOCALE is not set
> +UCLIBC_HAS___PROGNAME=y
> +# UCLIBC_LINUX_MODULE_24 is not set
> +UCLIBC_LINUX_MODULE_26=y
> +UCLIBC_LINUX_SPECIFIC=y
> +# UCLIBC_MALLOC_DEBUGGING is not set
> +# UCLIBC_MJN3_ONLY is not set
> +# UCLIBC_NTP_LEGACY is not set
> +# USE_OLD_VFPRINTF is not set
> +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
> +UCLIBC_PWD_BUFFER_SIZE=256
> +# UCLIBC_STATIC_LDCONFIG is not set
> +# UCLIBC_STRICT_HEADERS is not set
> +UCLIBC_SUPPORT_AI_ADDRCONFIG=y
> +UCLIBC_SUSV3_LEGACY=y
> +UCLIBC_SUSV3_LEGACY_MACROS=y
> +UCLIBC_SUSV4_LEGACY=y
> +# UCLIBC_SV4_DEPRECATED is not set
> +UCLIBC_TZ_FILE_PATH="/etc/TZ"
> +# UCLIBC_FALLBACK_TO_ETC_LOCALTIME is not set
> +UCLIBC_USE_NETLINK=y
> +# UNIX98PTY_ONLY is not set
> +USE_BX=y
> +WARNINGS="-Wall"
> +# UCLIBC_HAS_OBSTACK is not set
> +# UCLIBC_SUSV2_LEGACY is not set
> +# UCLIBC_HAS_CONTEXT_FUNCS is not set
> +UCLIBC_HAS_GETOPT_LONG=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/debug b/toolchain/uClibc/config-ng-1.0.6/debug
> new file mode 100644
> index 0000000..b366e66
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/debug
> @@ -0,0 +1,6 @@
> +DODEBUG=y
> +DODEBUG_PT=y
> +PTHREADS_DEBUG_SUPPORT=y
> +SUPPORT_LD_DEBUG=y
> +SUPPORT_LD_DEBUG_EARLY=y
> +UCLIBC_MALLOC_DEBUGGING=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/i386 b/toolchain/uClibc/config-ng-1.0.6/i386
> new file mode 100644
> index 0000000..5ef264c
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/i386
> @@ -0,0 +1,21 @@
> +ARCH_LITTLE_ENDIAN=y
> +# CONFIG_386 is not set
> +CONFIG_486=y
> +# CONFIG_586 is not set
> +# CONFIG_586MMX is not set
> +# CONFIG_686 is not set
> +# CONFIG_CRUSOE is not set
> +# CONFIG_CYRIXIII is not set
> +# CONFIG_ELAN is not set
> +# CONFIG_GENERIC_386 is not set
> +# CONFIG_K6 is not set
> +# CONFIG_K7 is not set
> +# CONFIG_NEHEMIAH is not set
> +# CONFIG_PENTIUM4 is not set
> +# CONFIG_PENTIUMII is not set
> +# CONFIG_PENTIUMIII is not set
> +# CONFIG_WINCHIP2 is not set
> +# CONFIG_WINCHIPC6 is not set
> +TARGET_ARCH="i386"
> +TARGET_i386=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/i686 b/toolchain/uClibc/config-ng-1.0.6/i686
> new file mode 100644
> index 0000000..ba615f6
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/i686
> @@ -0,0 +1,21 @@
> +ARCH_LITTLE_ENDIAN=y
> +# CONFIG_386 is not set
> +# CONFIG_486 is not set
> +# CONFIG_586 is not set
> +# CONFIG_586MMX is not set
> +CONFIG_686=y
> +# CONFIG_CRUSOE is not set
> +# CONFIG_CYRIXIII is not set
> +# CONFIG_ELAN is not set
> +# CONFIG_GENERIC_386 is not set
> +# CONFIG_K6 is not set
> +# CONFIG_K7 is not set
> +# CONFIG_NEHEMIAH is not set
> +# CONFIG_PENTIUM4 is not set
> +# CONFIG_PENTIUMII is not set
> +# CONFIG_PENTIUMIII is not set
> +# CONFIG_WINCHIP2 is not set
> +# CONFIG_WINCHIPC6 is not set
> +TARGET_ARCH="i386"
> +TARGET_i386=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/m68k b/toolchain/uClibc/config-ng-1.0.6/m68k
> new file mode 100644
> index 0000000..14ce5ae
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/m68k
> @@ -0,0 +1,6 @@
> +ARCH_BIG_ENDIAN=y
> +LINUXTHREADS_OLD=y
> +TARGET_ARCH="m68k"
> +TARGET_SUBARCH=""
> +TARGET_m68k=y
> +# UCLIBC_HAS_THREADS_NATIVE is not set
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips b/toolchain/uClibc/config-ng-1.0.6/mips
> new file mode 100644
> index 0000000..8cec22f
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips
> @@ -0,0 +1,18 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_BIG_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_WANTS_BIG_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +CONFIG_MIPS_ISA_MIPS32=y
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +# CONFIG_MIPS_ISA_MIPS64 is not set
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +# CONFIG_MIPS_N64_ABI is not set
> +CONFIG_MIPS_O32_ABI=y
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64 b/toolchain/uClibc/config-ng-1.0.6/mips64
> new file mode 100644
> index 0000000..566d87a
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64
> @@ -0,0 +1,18 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_BIG_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_WANTS_BIG_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +CONFIG_MIPS_N64_ABI=y
> +# CONFIG_MIPS_O32_ABI is not set
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64.32 b/toolchain/uClibc/config-ng-1.0.6/mips64.32
> new file mode 100644
> index 0000000..b7ea8f4
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64.32
> @@ -0,0 +1,19 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_BIG_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_WANTS_BIG_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +# CONFIG_MIPS_N64_ABI is not set
> +CONFIG_MIPS_O32_ABI=y
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +TARGET_SUBARCH="mips64"
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64.64 b/toolchain/uClibc/config-ng-1.0.6/mips64.64
> new file mode 100644
> index 0000000..2a0b755
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64.64
> @@ -0,0 +1,19 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_BIG_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_WANTS_BIG_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +CONFIG_MIPS_N64_ABI=y
> +# CONFIG_MIPS_O32_ABI is not set
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +TARGET_SUBARCH="mips64"
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64.n32 b/toolchain/uClibc/config-ng-1.0.6/mips64.n32
> new file mode 100644
> index 0000000..f8def58
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64.n32
> @@ -0,0 +1,19 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_BIG_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_WANTS_BIG_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +CONFIG_MIPS_N32_ABI=y
> +# CONFIG_MIPS_N64_ABI is not set
> +# CONFIG_MIPS_O32_ABI is not set
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +TARGET_SUBARCH="mips64"
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el b/toolchain/uClibc/config-ng-1.0.6/mips64el
> new file mode 100644
> index 0000000..5358078
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64el
> @@ -0,0 +1,18 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +CONFIG_MIPS_N64_ABI=y
> +# CONFIG_MIPS_O32_ABI is not set
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el.32 b/toolchain/uClibc/config-ng-1.0.6/mips64el.32
> new file mode 100644
> index 0000000..a10840b
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64el.32
> @@ -0,0 +1,19 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +# CONFIG_MIPS_N64_ABI is not set
> +CONFIG_MIPS_O32_ABI=y
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +TARGET_SUBARCH="mips64"
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el.64 b/toolchain/uClibc/config-ng-1.0.6/mips64el.64
> new file mode 100644
> index 0000000..8b90a54
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64el.64
> @@ -0,0 +1,19 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +CONFIG_MIPS_N64_ABI=y
> +# CONFIG_MIPS_O32_ABI is not set
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +TARGET_SUBARCH="mips64"
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el.n32 b/toolchain/uClibc/config-ng-1.0.6/mips64el.n32
> new file mode 100644
> index 0000000..4ac4d06
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mips64el.n32
> @@ -0,0 +1,19 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +CONFIG_MIPS_ISA_MIPS64=y
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +CONFIG_MIPS_N32_ABI=y
> +# CONFIG_MIPS_N64_ABI is not set
> +# CONFIG_MIPS_O32_ABI is not set
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +TARGET_SUBARCH="mips64"
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mipsel b/toolchain/uClibc/config-ng-1.0.6/mipsel
> new file mode 100644
> index 0000000..d9dedbb
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mipsel
> @@ -0,0 +1,18 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +# CONFIG_MIPS_ISA_3 is not set
> +# CONFIG_MIPS_ISA_4 is not set
> +CONFIG_MIPS_ISA_MIPS32=y
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +# CONFIG_MIPS_ISA_MIPS64 is not set
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +# CONFIG_MIPS_N64_ABI is not set
> +CONFIG_MIPS_O32_ABI=y
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt b/toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt
> new file mode 100644
> index 0000000..1d42a70
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt
> @@ -0,0 +1,18 @@
> +ARCH_ANY_ENDIAN=y
> +ARCH_CFLAGS="-mno-split-addresses"
> +ARCH_LITTLE_ENDIAN=y
> +ARCH_WANTS_LITTLE_ENDIAN=y
> +# CONFIG_MIPS_ISA_1 is not set
> +# CONFIG_MIPS_ISA_2 is not set
> +CONFIG_MIPS_ISA_3=y
> +# CONFIG_MIPS_ISA_4 is not set
> +# CONFIG_MIPS_ISA_MIPS32 is not set
> +# CONFIG_MIPS_ISA_MIPS32R2 is not set
> +# CONFIG_MIPS_ISA_MIPS64 is not set
> +# CONFIG_MIPS_ISA_MIPS64R2 is not set
> +# CONFIG_MIPS_N32_ABI is not set
> +# CONFIG_MIPS_N64_ABI is not set
> +CONFIG_MIPS_O32_ABI=y
> +TARGET_ARCH="mips"
> +TARGET_mips=y
> +UCLIBC_HAS_FPU=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/powerpc b/toolchain/uClibc/config-ng-1.0.6/powerpc
> new file mode 100644
> index 0000000..5b1292d
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/powerpc
> @@ -0,0 +1,6 @@
> +ARCH_BIG_ENDIAN=y
> +CONFIG_CLASSIC=y
> +# CONFIG_E500 is not set
> +TARGET_ARCH="powerpc"
> +TARGET_SUBARCH="classic"
> +TARGET_powerpc=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/powerpc.e500 b/toolchain/uClibc/config-ng-1.0.6/powerpc.e500
> new file mode 100644
> index 0000000..a835c3d
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/powerpc.e500
> @@ -0,0 +1,6 @@
> +ARCH_BIG_ENDIAN=y
> +# CONFIG_CLASSIC is not set
> +CONFIG_E500=y
> +TARGET_ARCH="powerpc"
> +TARGET_SUBARCH="classic"
> +TARGET_powerpc=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/sparc b/toolchain/uClibc/config-ng-1.0.6/sparc
> new file mode 100644
> index 0000000..e1596c4
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/sparc
> @@ -0,0 +1,8 @@
> +ARCH_BIG_ENDIAN=y
> +# CONFIG_SPARC_V7 is not set
> +# CONFIG_SPARC_V8 is not set
> +CONFIG_SPARC_V9=y
> +# CONFIG_SPARC_V9B is not set
> +TARGET_ARCH="sparc"
> +TARGET_sparc=y
> +UCLIBC_HAS_LONG_DOUBLE_MATH=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/sparc.leon b/toolchain/uClibc/config-ng-1.0.6/sparc.leon
> new file mode 100644
> index 0000000..eb725ac
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/sparc.leon
> @@ -0,0 +1,8 @@
> +ARCH_BIG_ENDIAN=y
> +# CONFIG_SPARC_V7 is not set
> +CONFIG_SPARC_V8=y
> +# CONFIG_SPARC_V9 is not set
> +# CONFIG_SPARC_V9B is not set
> +TARGET_ARCH="sparc"
> +TARGET_sparc=y
> +UCLIBC_HAS_LONG_DOUBLE_MATH=y
> diff --git a/toolchain/uClibc/config-ng-1.0.6/x86_64 b/toolchain/uClibc/config-ng-1.0.6/x86_64
> new file mode 100644
> index 0000000..b6dc2c2
> --- /dev/null
> +++ b/toolchain/uClibc/config-ng-1.0.6/x86_64
> @@ -0,0 +1,6 @@
> +ARCH_LITTLE_ENDIAN=y
> +# LINUXTHREADS_NEW is not set
> +TARGET_ARCH="x86_64"
> +TARGET_x86_64=y
> +UCLIBC_BSD_SPECIFIC=y
> +UCLIBC_HAS_FPU=y
>
Alexey Brodkin Aug. 26, 2015, 6:28 p.m. UTC | #2
Hi John,

On Wed, 2015-08-26 at 20:20 +0200, John Crispin wrote:
> Hi,
> 
> On 26/08/2015 20:11, Alexey Brodkin wrote:
> > uClibc-ng is a spin-off of original uClibc, see http://www.uclibc-ng.org/
> > 
> > We try to regularly add changes from uClibc to uClibc-ng.
> > We even sent patches and bug reports to the uClibc mailing list.
> > The config file is compatible between uClibc-ng 1.0 and uClibc git master.
> > This might change in the future.
> > 
> > Our main goal is to provide regularly a stable and tested release
> > to make embedded system developers happy.
> > 
> > The main advantage of uClibc-ng over olde good uClibc is regular releases
> > so there's no need to keep tons of patches on top of years old
> > 0.9.33.2
> > 
> 
> why do you not use musl ? it is actively support rather than being
> hooked on life support.

The point is I'm about to submit patch with support of new architecture (ARC)
in OpenWRT. And unfortunately the only libc we have now is uClibc.

And since "original" uClibc lack recent releases (where ARC support might exist
as we're in uclibc's master branch for quite some time already) I went forward
with uClibc-ng which sees releases much more often and in released tarballs
we already have support of ARC.

So I understand that other architectures may not benefit a lot from newer
uClibc but for us (ARC) there's no other way.

Hope that makes sense.

-Alexey
Adam Kuklycz Aug. 26, 2015, 11:48 p.m. UTC | #3
Hi all,

I was wondering why OpenWRT switched to musl -- is it purely because 
uclibc hasn't actually maintained their code properly?

One of the things I have noticed since the CC trunk builds I did with 
kernel 3.18.11 + uclibc is that the image sizes have ballooned out by a 
fair bit.

For example, a build on trunk r45705 which uses uclibc and kernel 
3.18.11 would allow for most features to be included in a build e.g. 
openvpn, luci + ssl support, more connecting protocols than just pppoe 
and so on with a router sporting 8MB of flash.

Now with recent trunk builds, with musl and kernel 4.1.x, I've had to 
cut features considerably just to make it fit.  Just adding openvpn with 
openssl support means that an image prior that built at 7MB would 
balloon out to 8MB which would mean that the image would not be produced 
as it is too big.

I've yet to do a separate build with latest trunk and uclibc but 
certainly something has caused image build sizes to grow quite a bit 
recently, though in testing I've done at least, it hasn't impacted on 
router performance for now.

Cheers
Adam


On 27/08/15 04:28, Alexey Brodkin wrote:
> Hi John,
>
> On Wed, 2015-08-26 at 20:20 +0200, John Crispin wrote:
>> Hi,
>>
>> On 26/08/2015 20:11, Alexey Brodkin wrote:
>>> uClibc-ng is a spin-off of original uClibc, see http://www.uclibc-ng.org/
>>>
>>> We try to regularly add changes from uClibc to uClibc-ng.
>>> We even sent patches and bug reports to the uClibc mailing list.
>>> The config file is compatible between uClibc-ng 1.0 and uClibc git master.
>>> This might change in the future.
>>>
>>> Our main goal is to provide regularly a stable and tested release
>>> to make embedded system developers happy.
>>>
>>> The main advantage of uClibc-ng over olde good uClibc is regular releases
>>> so there's no need to keep tons of patches on top of years old
>>> 0.9.33.2
>>>
>> why do you not use musl ? it is actively support rather than being
>> hooked on life support.
> The point is I'm about to submit patch with support of new architecture (ARC)
> in OpenWRT. And unfortunately the only libc we have now is uClibc.
>
> And since "original" uClibc lack recent releases (where ARC support might exist
> as we're in uclibc's master branch for quite some time already) I went forward
> with uClibc-ng which sees releases much more often and in released tarballs
> we already have support of ARC.
>
> So I understand that other architectures may not benefit a lot from newer
> uClibc but for us (ARC) there's no other way.
>
> Hope that makes sense.
>
> -Alexey
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Felix Fietkau Aug. 27, 2015, 9:33 a.m. UTC | #4
On 2015-08-27 01:48, Adam Kuklycz wrote:
> Hi all,
> 
> I was wondering why OpenWRT switched to musl -- is it purely because 
> uclibc hasn't actually maintained their code properly?
That's only part of the reason. Aside from the maintainenance, the code
quality of uClibc is also poor compared to musl.
musl also has better runtime performance and uses less RAM.

> One of the things I have noticed since the CC trunk builds I did with 
> kernel 3.18.11 + uclibc is that the image sizes have ballooned out by a 
> fair bit.
> 
> For example, a build on trunk r45705 which uses uclibc and kernel 
> 3.18.11 would allow for most features to be included in a build e.g. 
> openvpn, luci + ssl support, more connecting protocols than just pppoe 
> and so on with a router sporting 8MB of flash.
> 
> Now with recent trunk builds, with musl and kernel 4.1.x, I've had to 
> cut features considerably just to make it fit.  Just adding openvpn with 
> openssl support means that an image prior that built at 7MB would 
> balloon out to 8MB which would mean that the image would not be produced 
> as it is too big.
Last time I compared musl vs uClibc images, the size difference was
neglegible. I'd say it's more likely that the switch to Linux 4.1 caused
the size increase (the kernel does get more bloated with each new release).

- Felix
Adam Kuklycz Aug. 27, 2015, 12:17 p.m. UTC | #5
Hi Felix

Thanks for clarifying.  I've also noticed what appears to be a memory 
leak in my latest build as well which I am working on drilling down 
now.  After a couple days of uptime the device is out of memory.  It's 
much more pronounced when doing downloads with many connections 
simultaneously.

So all that said, yes I do agree there is always more bloat with each 
kernel update sadly.  I'm busy now doing builds with both uclibc and 
musl and will be interested to see the size comparisons. Will take 
several hours so will report back in the morning (Australian time)

Cheers


On 27/08/15 19:33, Felix Fietkau wrote:
> On 2015-08-27 01:48, Adam Kuklycz wrote:
>> Hi all,
>>
>> I was wondering why OpenWRT switched to musl -- is it purely because
>> uclibc hasn't actually maintained their code properly?
> That's only part of the reason. Aside from the maintainenance, the code
> quality of uClibc is also poor compared to musl.
> musl also has better runtime performance and uses less RAM.
>
>> One of the things I have noticed since the CC trunk builds I did with
>> kernel 3.18.11 + uclibc is that the image sizes have ballooned out by a
>> fair bit.
>>
>> For example, a build on trunk r45705 which uses uclibc and kernel
>> 3.18.11 would allow for most features to be included in a build e.g.
>> openvpn, luci + ssl support, more connecting protocols than just pppoe
>> and so on with a router sporting 8MB of flash.
>>
>> Now with recent trunk builds, with musl and kernel 4.1.x, I've had to
>> cut features considerably just to make it fit.  Just adding openvpn with
>> openssl support means that an image prior that built at 7MB would
>> balloon out to 8MB which would mean that the image would not be produced
>> as it is too big.
> Last time I compared musl vs uClibc images, the size difference was
> neglegible. I'd say it's more likely that the switch to Linux 4.1 caused
> the size increase (the kernel does get more bloated with each new release).
>
> - Felix
Adam Kuklycz Aug. 27, 2015, 11:03 p.m. UTC | #6
Just following up on the suspected memory leak, and image build sizes.

With the memory leak, it's not a memory leak as such rather than 
conntrackd filling things up with a log file.

After 22 hours of running:

root@gateway-openwrt:/tmp/log# ls -l
-rw-------    1 root     root      30080612 Aug 28 08:44 
conntrackd-stats.log
drwxr-xr-x    2 root     root            60 Aug 27 10:37 ddns
-rw-r--r--    1 root     root             0 Aug 25 13:06 lastlog
-rw-r--r--    1 root     root             0 Aug 27 10:36 log.nmbd
-rw-r--r--    1 root     root             0 Aug 27 10:36 log.smbd
-rw-r--r--    1 root     root             0 Aug 25 13:06 wtmp

Deleting the log file and then shutting down conntrackd cleared the used 
space.  I might look at omitting conntrackd from the builds in future.

Now for the build sizes.

musl does produce a larger image.  Below is the result of a 
configuration file I have used for trunk builds with releases 457xx and 
have reused for a build on r46734 the only changes being I selected 
either uclibc or musl for the toolchain, otherwise the config file used 
is identical.

MUSL:

-rw-r--r-- 1 adamk adamk  8126468 Aug 27 23:15 
openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin

UCLIBC:

-rw-r--r-- 1 adamk adamk  7864324 Aug 27 14:19 
openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin


Now, for stability sakes I'll want to reduce the image size anyway, with 
the bloat from latest kernels blowing things out by a good 300KB as 
well, but it looks like using musl adds around 300KB too.

Have the devs determined that perhaps the increased performance of using 
musl outweighs the hit on image sizes?

Cheers
Adam


On 27/08/15 22:17, Adam Kuklycz wrote:
> Hi Felix
>
> Thanks for clarifying.  I've also noticed what appears to be a memory 
> leak in my latest build as well which I am working on drilling down 
> now.  After a couple days of uptime the device is out of memory.  It's 
> much more pronounced when doing downloads with many connections 
> simultaneously.
>
> So all that said, yes I do agree there is always more bloat with each 
> kernel update sadly.  I'm busy now doing builds with both uclibc and 
> musl and will be interested to see the size comparisons. Will take 
> several hours so will report back in the morning (Australian time)
>
> Cheers
>
>
> On 27/08/15 19:33, Felix Fietkau wrote:
>> On 2015-08-27 01:48, Adam Kuklycz wrote:
>>> Hi all,
>>>
>>> I was wondering why OpenWRT switched to musl -- is it purely because
>>> uclibc hasn't actually maintained their code properly?
>> That's only part of the reason. Aside from the maintainenance, the code
>> quality of uClibc is also poor compared to musl.
>> musl also has better runtime performance and uses less RAM.
>>
>>> One of the things I have noticed since the CC trunk builds I did with
>>> kernel 3.18.11 + uclibc is that the image sizes have ballooned out by a
>>> fair bit.
>>>
>>> For example, a build on trunk r45705 which uses uclibc and kernel
>>> 3.18.11 would allow for most features to be included in a build e.g.
>>> openvpn, luci + ssl support, more connecting protocols than just pppoe
>>> and so on with a router sporting 8MB of flash.
>>>
>>> Now with recent trunk builds, with musl and kernel 4.1.x, I've had to
>>> cut features considerably just to make it fit.  Just adding openvpn 
>>> with
>>> openssl support means that an image prior that built at 7MB would
>>> balloon out to 8MB which would mean that the image would not be 
>>> produced
>>> as it is too big.
>> Last time I compared musl vs uClibc images, the size difference was
>> neglegible. I'd say it's more likely that the switch to Linux 4.1 caused
>> the size increase (the kernel does get more bloated with each new 
>> release).
>>
>> - Felix
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Felix Fietkau Aug. 27, 2015, 11:11 p.m. UTC | #7
On 2015-08-28 01:03, Adam Kuklycz wrote:
> Just following up on the suspected memory leak, and image build sizes.
> 
> With the memory leak, it's not a memory leak as such rather than 
> conntrackd filling things up with a log file.
> 
> After 22 hours of running:
> 
> root@gateway-openwrt:/tmp/log# ls -l
> -rw-------    1 root     root      30080612 Aug 28 08:44 
> conntrackd-stats.log
> drwxr-xr-x    2 root     root            60 Aug 27 10:37 ddns
> -rw-r--r--    1 root     root             0 Aug 25 13:06 lastlog
> -rw-r--r--    1 root     root             0 Aug 27 10:36 log.nmbd
> -rw-r--r--    1 root     root             0 Aug 27 10:36 log.smbd
> -rw-r--r--    1 root     root             0 Aug 25 13:06 wtmp
> 
> Deleting the log file and then shutting down conntrackd cleared the used 
> space.  I might look at omitting conntrackd from the builds in future.
> 
> Now for the build sizes.
> 
> musl does produce a larger image.  Below is the result of a 
> configuration file I have used for trunk builds with releases 457xx and 
> have reused for a build on r46734 the only changes being I selected 
> either uclibc or musl for the toolchain, otherwise the config file used 
> is identical.
> 
> MUSL:
> 
> -rw-r--r-- 1 adamk adamk  8126468 Aug 27 23:15 
> openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin
> 
> UCLIBC:
> 
> -rw-r--r-- 1 adamk adamk  7864324 Aug 27 14:19 
> openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin
> 
> 
> Now, for stability sakes I'll want to reduce the image size anyway, with 
> the bloat from latest kernels blowing things out by a good 300KB as 
> well, but it looks like using musl adds around 300KB too.
> 
> Have the devs determined that perhaps the increased performance of using 
> musl outweighs the hit on image sizes?
Images are padded, often to 256 KB (which is the size increase of your
image). This means that it might be that musl just slightly increases
the image size enough to push it to the next 256KB boundary.

Comparing the size of 
build_dir/target-mips_34kc_musl-1.1.10/linux-ar71xx_generic/root.squashfs-raw
between uclibc and musl should be more accurate.

- Felix
Adam Kuklycz Aug. 27, 2015, 11:34 p.m. UTC | #8
Fair enough.

MUSL:
-rw-r--r--  1 adamk adamk  6700676 Aug 27 23:15 root.squashfs

UCLIBC:
-rw-r--r--  1 adamk adamk  6601764 Aug 27 14:19 root.squashfs

So about 100KB difference.

Running Ubuntu 14.04.2 LTS x64 here.

I guess what I am looking at is the final product, which is around 300KB 
bigger in size.  Regardless, I'm going to need to reduce features for 
routers with 8MB of flash, as kernel bloat also adds around another 300KB.



On 28/08/15 09:11, Felix Fietkau wrote:
> On 2015-08-28 01:03, Adam Kuklycz wrote:
>> Just following up on the suspected memory leak, and image build sizes.
>>
>> With the memory leak, it's not a memory leak as such rather than
>> conntrackd filling things up with a log file.
>>
>> After 22 hours of running:
>>
>> root@gateway-openwrt:/tmp/log# ls -l
>> -rw-------    1 root     root      30080612 Aug 28 08:44
>> conntrackd-stats.log
>> drwxr-xr-x    2 root     root            60 Aug 27 10:37 ddns
>> -rw-r--r--    1 root     root             0 Aug 25 13:06 lastlog
>> -rw-r--r--    1 root     root             0 Aug 27 10:36 log.nmbd
>> -rw-r--r--    1 root     root             0 Aug 27 10:36 log.smbd
>> -rw-r--r--    1 root     root             0 Aug 25 13:06 wtmp
>>
>> Deleting the log file and then shutting down conntrackd cleared the used
>> space.  I might look at omitting conntrackd from the builds in future.
>>
>> Now for the build sizes.
>>
>> musl does produce a larger image.  Below is the result of a
>> configuration file I have used for trunk builds with releases 457xx and
>> have reused for a build on r46734 the only changes being I selected
>> either uclibc or musl for the toolchain, otherwise the config file used
>> is identical.
>>
>> MUSL:
>>
>> -rw-r--r-- 1 adamk adamk  8126468 Aug 27 23:15
>> openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin
>>
>> UCLIBC:
>>
>> -rw-r--r-- 1 adamk adamk  7864324 Aug 27 14:19
>> openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin
>>
>>
>> Now, for stability sakes I'll want to reduce the image size anyway, with
>> the bloat from latest kernels blowing things out by a good 300KB as
>> well, but it looks like using musl adds around 300KB too.
>>
>> Have the devs determined that perhaps the increased performance of using
>> musl outweighs the hit on image sizes?
> Images are padded, often to 256 KB (which is the size increase of your
> image). This means that it might be that musl just slightly increases
> the image size enough to push it to the next 256KB boundary.
>
> Comparing the size of
> build_dir/target-mips_34kc_musl-1.1.10/linux-ar71xx_generic/root.squashfs-raw
> between uclibc and musl should be more accurate.
>
> - Felix
Felix Fietkau Aug. 28, 2015, 6:27 a.m. UTC | #9
On 2015-08-28 01:34, Adam Kuklycz wrote:
> Fair enough.
> 
> MUSL:
> -rw-r--r--  1 adamk adamk  6700676 Aug 27 23:15 root.squashfs
> 
> UCLIBC:
> -rw-r--r--  1 adamk adamk  6601764 Aug 27 14:19 root.squashfs
> 
> So about 100KB difference.
> 
> Running Ubuntu 14.04.2 LTS x64 here.
> 
> I guess what I am looking at is the final product, which is around 300KB 
> bigger in size.  Regardless, I'm going to need to reduce features for 
> routers with 8MB of flash, as kernel bloat also adds around another 300KB.
Can you please post the output of running ./scripts/diffconfig.sh?

Thanks,

- Felix
Adam Kuklycz Aug. 28, 2015, 7:33 a.m. UTC | #10
Hi Felix

Here is the output you requested.  Let me know if there's anything else 
you'd like.

adamk@Precision-M4500:~/ChaosCalmer-r46734$ ./scripts/diffconfig.sh
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic_Default=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_IB=y
CONFIG_IB_STANDALONE=y
CONFIG_MAKE_TOOLCHAIN=y
CONFIG_OPENSSL_WITH_EC=y
CONFIG_OPENVPN_openssl_ENABLE_DEF_AUTH=y
CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y
CONFIG_OPENVPN_openssl_ENABLE_HTTP=y
CONFIG_OPENVPN_openssl_ENABLE_LZO=y
CONFIG_OPENVPN_openssl_ENABLE_MULTIHOME=y
CONFIG_OPENVPN_openssl_ENABLE_PF=y
CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y
CONFIG_OPENVPN_openssl_ENABLE_SERVER=y
CONFIG_OPENVPN_openssl_ENABLE_SMALL=y
CONFIG_OPENVPN_openssl_ENABLE_SOCKS=y
CONFIG_PACKAGE_6in4=y
CONFIG_PACKAGE_6rd=y
CONFIG_PACKAGE_SAMBA_MAX_DEBUG_LEVEL=-1
CONFIG_PACKAGE_aiccu=y
CONFIG_PACKAGE_arptables=y
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_chat=y
CONFIG_PACKAGE_comgt=y
CONFIG_PACKAGE_comgt-directip=y
CONFIG_PACKAGE_comgt-ncm=y
CONFIG_PACKAGE_conntrack-tools=y
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_gre=y
CONFIG_PACKAGE_grev4=y
CONFIG_PACKAGE_grev6=y
CONFIG_PACKAGE_hd-idle=y
CONFIG_PACKAGE_hostapd-utils=y
CONFIG_PACKAGE_iftop=y
CONFIG_PACKAGE_ip=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-account=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-geoip=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-mod-iprange=y
CONFIG_PACKAGE_iptables-mod-nat-extra=y
CONFIG_PACKAGE_iptaccount=y
CONFIG_PACKAGE_iputils-arping=y
CONFIG_PACKAGE_iputils-ping=y
CONFIG_PACKAGE_iputils-ping6=y
CONFIG_PACKAGE_iputils-tracepath=y
CONFIG_PACKAGE_iputils-tracepath6=y
CONFIG_PACKAGE_iputils-traceroute6=y
CONFIG_PACKAGE_kmod-arptables=y
CONFIG_PACKAGE_kmod-fs-msdos=y
CONFIG_PACKAGE_kmod-fs-ntfs=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-fuse=y
CONFIG_PACKAGE_kmod-gre=y
CONFIG_PACKAGE_kmod-ifb=y
CONFIG_PACKAGE_kmod-ipt-account=y
CONFIG_PACKAGE_kmod-ipt-compat-xtables=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-geoip=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-iprange=y
CONFIG_PACKAGE_kmod-ipt-ipset=y
CONFIG_PACKAGE_kmod-ipt-nat-extra=y
CONFIG_PACKAGE_kmod-iptunnel=y
CONFIG_PACKAGE_kmod-iptunnel4=y
CONFIG_PACKAGE_kmod-mii=y
CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y
CONFIG_PACKAGE_kmod-nfnetlink=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-sched=y
CONFIG_PACKAGE_kmod-sched-connmark=y
CONFIG_PACKAGE_kmod-sched-core=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-sit=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-usb-net=y
CONFIG_PACKAGE_kmod-usb-net-cdc-mbim=y
CONFIG_PACKAGE_kmod-usb-net-cdc-ncm=y
CONFIG_PACKAGE_kmod-usb-net-huawei-cdc-ncm=y
CONFIG_PACKAGE_kmod-usb-net-qmi-wwan=y
CONFIG_PACKAGE_kmod-usb-net-sierrawireless=y
CONFIG_PACKAGE_kmod-usb-printer=y
CONFIG_PACKAGE_kmod-usb-serial=y
CONFIG_PACKAGE_kmod-usb-serial-option=y
CONFIG_PACKAGE_kmod-usb-serial-sierrawireless=y
CONFIG_PACKAGE_kmod-usb-serial-wwan=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_kmod-usb-wdm=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblzo=y
CONFIG_PACKAGE_libmnl=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnet-1.2.x=y
CONFIG_PACKAGE_libnetfilter-conntrack=y
CONFIG_PACKAGE_libnetfilter-cthelper=y
CONFIG_PACKAGE_libnetfilter-cttimeout=y
CONFIG_PACKAGE_libnetfilter-queue=y
CONFIG_PACKAGE_libnetsnmp=y
CONFIG_PACKAGE_libnfnetlink=y
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libpolarssl=y
CONFIG_PACKAGE_libpthread=y
CONFIG_PACKAGE_librt=y
CONFIG_PACKAGE_libsysfs=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libuci-lua=y
CONFIG_PACKAGE_libusb-1.0=y
CONFIG_PACKAGE_libustream-polarssl=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-commands=y
CONFIG_PACKAGE_luci-app-ddns=y
CONFIG_PACKAGE_luci-app-diag-core=y
CONFIG_PACKAGE_luci-app-diag-devinfo=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-hd-idle=y
CONFIG_PACKAGE_luci-app-mwan3=y
CONFIG_PACKAGE_luci-app-ntpc=y
CONFIG_PACKAGE_luci-app-openvpn=y
CONFIG_PACKAGE_luci-app-p910nd=y
CONFIG_PACKAGE_luci-app-qos=y
CONFIG_PACKAGE_luci-app-radvd=y
CONFIG_PACKAGE_luci-app-samba=y
CONFIG_PACKAGE_luci-app-sqm=y
CONFIG_PACKAGE_luci-app-upnp=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-proto-3g=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-ssl=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_miniupnpd=y
CONFIG_PACKAGE_mtr=y
CONFIG_PACKAGE_mwan3=y
CONFIG_PACKAGE_netdiscover=y
CONFIG_PACKAGE_ntfs-3g=y
CONFIG_PACKAGE_ntpclient=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_openvpn-easy-rsa=y
CONFIG_PACKAGE_openvpn-openssl=y
CONFIG_PACKAGE_p910nd=y
CONFIG_PACKAGE_px5g=y
CONFIG_PACKAGE_qos-scripts=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_samba36-server=y
CONFIG_PACKAGE_snmpd=y
CONFIG_PACKAGE_sqm-scripts=y
CONFIG_PACKAGE_tc=y
CONFIG_PACKAGE_tcpdump-mini=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
CONFIG_PACKAGE_umbim=y
CONFIG_PACKAGE_uqmi=y
CONFIG_PACKAGE_usb-modeswitch=y
CONFIG_PACKAGE_usbreset=y
CONFIG_PACKAGE_usbutils=y
CONFIG_PACKAGE_wifitoggle=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_wpad=y
# CONFIG_PACKAGE_wpad-mini is not set
CONFIG_PACKAGE_wwan=y
CONFIG_PACKAGE_zabbix-agentd=y
CONFIG_PACKAGE_zabbix-extra-mac80211=y
CONFIG_PACKAGE_zabbix-extra-network=y
CONFIG_PACKAGE_zabbix-extra-wifi=y
CONFIG_PACKAGE_zlib=y
CONFIG_SDK=y
CONFIG_WPA_SUPPLICANT_INTERNAL=y
# CONFIG_UCLIBC_USE_VERSION_0_9_33 is not set
adamk@Precision-M4500:~/ChaosCalmer-r46734$


On 28/08/15 16:27, Felix Fietkau wrote:
> On 2015-08-28 01:34, Adam Kuklycz wrote:
>> Fair enough.
>>
>> MUSL:
>> -rw-r--r--  1 adamk adamk  6700676 Aug 27 23:15 root.squashfs
>>
>> UCLIBC:
>> -rw-r--r--  1 adamk adamk  6601764 Aug 27 14:19 root.squashfs
>>
>> So about 100KB difference.
>>
>> Running Ubuntu 14.04.2 LTS x64 here.
>>
>> I guess what I am looking at is the final product, which is around 300KB
>> bigger in size.  Regardless, I'm going to need to reduce features for
>> routers with 8MB of flash, as kernel bloat also adds around another 300KB.
> Can you please post the output of running ./scripts/diffconfig.sh?
>
> Thanks,
>
> - Felix
Alexander 'lynxis' Couzens Sept. 30, 2015, 8:37 p.m. UTC | #11
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi,

what's the state of this patch?

I'm unbreaking sparc for OpenWrt and uclibc is broken as already
mentioned. musl doesn't support sparc :(.

Best,
lynxis

On Wed, 26 Aug 2015 21:11:22 +0300
Alexey Brodkin <Alexey.Brodkin@synopsys.com> wrote:

> uClibc-ng is a spin-off of original uClibc, see
> http://www.uclibc-ng.org/
> 
> We try to regularly add changes from uClibc to uClibc-ng.
> We even sent patches and bug reports to the uClibc mailing list.
> The config file is compatible between uClibc-ng 1.0 and uClibc git
> master. This might change in the future.
> 
> Our main goal is to provide regularly a stable and tested release
> to make embedded system developers happy.
> 
> The main advantage of uClibc-ng over olde good uClibc is regular
> releases so there's no need to keep tons of patches on top of years
> old 0.9.33.2
> 
> Build-tested for
>  [1] ARM: Sunxi generic
>  [2] MIPS: Netgear WNDR3600/3700/3800
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJWDEgLAAoJEMKenaag34YEMlgP/2JIh87oijV/8E+Jx8zZ7vmd
W2D4aJxsHY0el7KSEANlKD1fkhXAvWrCz0uV3VS8mbrHHQyuuoA6pbR57QKSTrmz
ovyDNQtA7WLKJH9OQGJitMYsaNXGE+GbMo1X+WVuqBQ2G+fsoZ7QM/dEV/jnGOce
HmpaHKk4hUVE2PKvN2GYa/rm4AlTXQoNNyjBloZ5U1MjxG5l/if82YDwCxhk7M/z
PGMiZlezgPhNMlwfn+VF3pS16SqFGb7M9mEOn5dCxm32Zxx421K7WgU9bdvRHdkU
+xYSCOfD2JcTIIHABKcyzBb9sKcUFoaOppiqdnf68+jUbo9LyWpcvtPu7wxhm5Qc
8ww1nIaDSamQPNd44Zou4XpDDtNxQeBaXXiVI70OEY+pXRl0Ilytt/zIoT1LSoYY
RFd3TZPkswSNLE+eia8lztU6wjmsmO6vz1Do0BmGhCWiD1E9EtgG0T3B+r7YDp9o
m1cqeOjD6e+BAMp/BCPe4N3R8C0BP1lo2ARa/ZxlzYywp8qL4BjFsVeZb1TmFmMb
jRBuuKlBRQDn/cYDGQK4c8ct8kqgAWT5IAA2DYTErzOCxQra5Z4fuJzXHCtRsFQO
qqvHZ2brmryCSgqmqcdzo6t7fxtoeMqCSfbvLHloRQszCHV9AbJ3gfWIBlTesVHv
iWHy84BSs+1zfvKbjA8m
=r+Rc
-----END PGP SIGNATURE-----
Alexey Brodkin Sept. 30, 2015, 8:49 p.m. UTC | #12
Hi Alexander,

On Wed, 2015-09-30 at 22:37 +0200, Alexander Couzens wrote:
> Hi,
> 
> what's the state of this patch?
> 
> I'm unbreaking sparc for OpenWrt and uclibc is broken as already
> mentioned. musl doesn't support sparc :(.

Unfortunately I haven't heard anything back except that musl
is the right way to go. 

I think you saw it here - https://patchwork.ozlabs.org/patch/510985/

And as in your case for ARC there's no musl yet and won't be
at least anything stable until the next OpenWRT release.

-Alexey
Felix Fietkau Oct. 1, 2015, 10:25 a.m. UTC | #13
On 2015-09-30 22:49, Alexey Brodkin wrote:
> Hi Alexander,
> 
> On Wed, 2015-09-30 at 22:37 +0200, Alexander Couzens wrote:
>> Hi,
>> 
>> what's the state of this patch?
>> 
>> I'm unbreaking sparc for OpenWrt and uclibc is broken as already
>> mentioned. musl doesn't support sparc :(.
> 
> Unfortunately I haven't heard anything back except that musl
> is the right way to go. 
> 
> I think you saw it here - https://patchwork.ozlabs.org/patch/510985/
> 
> And as in your case for ARC there's no musl yet and won't be
> at least anything stable until the next OpenWRT release.
Sorry for the delay, I will take this patch, but I'm currently
considering adding dependencies to limit it to platforms that need
uClibc, so that we can skip the test effort and config maintenance on
platforms that should be using musl instead.

- Felix
diff mbox

Patch

diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
index 08ea00a..c923bc0 100644
--- a/toolchain/uClibc/Config.in
+++ b/toolchain/uClibc/Config.in
@@ -11,6 +11,10 @@  choice
 		select UCLIBC_VERSION_0_9_33
 		bool "uClibc 0.9.33.2"
 
+	config UCLIBC_USE_VERSION_NG
+		select UCLIBC_VERSION_NG
+		bool "uClibc-ng"
+
 endchoice
 
 # Debug version.
diff --git a/toolchain/uClibc/Config.version b/toolchain/uClibc/Config.version
index dd302f2..b6aa471 100644
--- a/toolchain/uClibc/Config.version
+++ b/toolchain/uClibc/Config.version
@@ -2,8 +2,12 @@  config UCLIBC_VERSION
 	string
 	depends on USE_UCLIBC
 	default "0.9.33.2"       if UCLIBC_VERSION_0_9_33
+	default "1.0.6"          if UCLIBC_VERSION_NG
 	default "0.9.33.2"
 
 config UCLIBC_VERSION_0_9_33
 	default y if !TOOLCHAINOPTS && USE_UCLIBC
 	bool
+
+config UCLIBC_VERSION_NG
+	bool
diff --git a/toolchain/uClibc/common.mk b/toolchain/uClibc/common.mk
index 53a8443..026d69d 100644
--- a/toolchain/uClibc/common.mk
+++ b/toolchain/uClibc/common.mk
@@ -7,15 +7,24 @@ 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/target.mk
 
-PKG_NAME:=uClibc
 PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
+
+ifeq ($(CONFIG_UCLIBC_VERSION_NG),y)
+PKG_NAME:=uClibc-ng
+PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/
+PATCH_DIR:=$(PATH_PREFIX)/patches-ng-$(PKG_VERSION)
+CONFIG_DIR:=$(PATH_PREFIX)/config-ng-$(PKG_VERSION)
+else
+PKG_NAME:=uClibc
 PKG_SOURCE_URL:=http://www.uclibc.org/downloads
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-LIBC_SO_VERSION:=$(PKG_VERSION)
 PATCH_DIR:=$(PATH_PREFIX)/patches-$(PKG_VERSION)
 CONFIG_DIR:=$(PATH_PREFIX)/config-$(PKG_VERSION)
+endif
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+LIBC_SO_VERSION:=$(PKG_VERSION)
 
 PKG_MD5SUM_0.9.33.2 = a338aaffc56f0f5040e6d9fa8a12eda1
+PKG_MD5SUM_1.0.6 = dfcc780bf2c7e2e42209bbb572e035cf
 PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION))
 
 HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)
diff --git a/toolchain/uClibc/config-ng-1.0.6/arm b/toolchain/uClibc/config-ng-1.0.6/arm
new file mode 100644
index 0000000..41a60b1
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/arm
@@ -0,0 +1,9 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# COMPILE_IN_THUMB_MODE is not set
+TARGET_ARCH="arm"
+TARGET_arm=y
+# USE_BX is not set
+CONFIG_ARM_EABI=y
+
diff --git a/toolchain/uClibc/config-ng-1.0.6/armeb b/toolchain/uClibc/config-ng-1.0.6/armeb
new file mode 100644
index 0000000..2e46dd6
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/armeb
@@ -0,0 +1,9 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_WANTS_BIG_ENDIAN=y
+# COMPILE_IN_THUMB_MODE is not set
+TARGET_ARCH="arm"
+TARGET_arm=y
+# USE_BX is not set
+CONFIG_ARM_EABI=y
+
diff --git a/toolchain/uClibc/config-ng-1.0.6/common b/toolchain/uClibc/config-ng-1.0.6/common
new file mode 100644
index 0000000..ddaf600
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/common
@@ -0,0 +1,223 @@ 
+# ARCH_ANY_ENDIAN is not set
+ARCH_HAS_MMU=y
+# ARCH_HAS_NO_LDSO is not set
+# ARCH_HAS_NO_SHARED is not set
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_USE_MMU=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+# ARCH_WANTS_LITTLE_ENDIAN is not set
+ASSUME_DEVPTS=y
+# COMPAT_ATEXIT is not set
+CROSS_COMPILER_PREFIX=""
+DEVEL_PREFIX="/usr/"
+# DOASSERTS is not set
+# DODEBUG is not set
+# DODEBUG_PT is not set
+# DOMULTI is not set
+DOPIC=y
+DOSTRIP=y
+DO_C99_MATH=y
+# DO_XSI_MATH is not set
+# EXTRA_WARNINGS is not set
+FORCE_OPTIONS_FOR_ARCH=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+# HARDWIRED_ABSPATH is not set
+# HAS_NO_THREADS is not set
+HAVE_DOT_CONFIG=y
+# HAVE_NO_PIC is not set
+# HAVE_NO_SSP is not set
+HAVE_SHARED=y
+KERNEL_HEADERS="."
+LDSO_BASE_FILENAME="ld.so"
+LDSO_CACHE_SUPPORT=y
+# LDSO_GNU_HASH_SUPPORT is not set
+LDSO_LD_LIBRARY_PATH=y
+LDSO_LDD_SUPPORT=y
+# LDSO_NO_CLEANUP is not set
+# LDSO_PRELINK_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_PRELOAD_ENV_SUPPORT=y
+LDSO_RUNPATH=y
+LDSO_SAFE_RUNPATH=y
+# LDSO_RUNPATH_OF_EXECUTABLE is not set
+# LDSO_SEARCH_INTERP_PATH is not set
+# LDSO_STANDALONE_SUPPORT is not set
+# LINUXTHREADS_NEW is not set
+# LINUXTHREADS_OLD is not set
+# UCLIBC_HAS_BACKTRACE is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+# MALLOC is not set
+MALLOC_GLIBC_COMPAT=y
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MULTILIB_DIR="lib"
+PTHREADS_DEBUG_SUPPORT=y
+RUNTIME_PREFIX="/"
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+TARGET_SUBARCH=""
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_BUILD_NOEXECSTACK=y
+# UCLIBC_BUILD_NOW is not set
+# UCLIBC_BUILD_PIE is not set
+UCLIBC_BUILD_RELRO=y
+UCLIBC_CTOR_DTOR=y
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_EXTRA_CFLAGS=""
+UCLIBC_GRP_BUFFER_SIZE=256
+UCLIBC_HAS_ADVANCED_REALTIME=y
+# UCLIBC_HAS_ARC4RANDOM is not set
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+# UCLIBC_HAS_COMPAT_RES_STATE is not set
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_TABLES=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+# UCLIBC_HAS_FENV is not set
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_FNMATCH_OLD=y
+# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_FTW=y
+# UCLIBC_HAS_FULL_RPC is not set
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_GNU_GLOB=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_LFS=y
+UCLIBC_HAS_LIBNSL_STUB=y
+UCLIBC_HAS_LIBRESOLV_STUB=y
+UCLIBC_HAS_LIBUTIL=y
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_BUILD_ALL_LOCALE is not set
+# UCLIBC_BUILD_MINIMAL_LOCALE is not set
+# UCLIBC_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_NFTW=y
+# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+UCLIBC_HAS_PRINTF_M_SPEC=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS_PTY=y
+UCLIBC_HAS_REALTIME=y
+# UCLIBC_HAS_REENTRANT_RPC is not set
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_REGEX_OLD=y
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_HAS_RPC is not set
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set
+# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_SOFT_FLOAT=y
+# UCLIBC_HAS_SSP is not set
+# UCLIBC_HAS_SSP_COMPAT is not set
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SYSLOG=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_WORDEXP=y
+# UCLIBC_HAS_XATTR is not set
+# UCLIBC_HAS_XLOCALE is not set
+UCLIBC_HAS___PROGNAME=y
+# UCLIBC_LINUX_MODULE_24 is not set
+UCLIBC_LINUX_MODULE_26=y
+UCLIBC_LINUX_SPECIFIC=y
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_MJN3_ONLY is not set
+# UCLIBC_NTP_LEGACY is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_PWD_BUFFER_SIZE=256
+# UCLIBC_STATIC_LDCONFIG is not set
+# UCLIBC_STRICT_HEADERS is not set
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_SUSV3_LEGACY=y
+UCLIBC_SUSV3_LEGACY_MACROS=y
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_SV4_DEPRECATED is not set
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+# UCLIBC_FALLBACK_TO_ETC_LOCALTIME is not set
+UCLIBC_USE_NETLINK=y
+# UNIX98PTY_ONLY is not set
+USE_BX=y
+WARNINGS="-Wall"
+# UCLIBC_HAS_OBSTACK is not set
+# UCLIBC_SUSV2_LEGACY is not set
+# UCLIBC_HAS_CONTEXT_FUNCS is not set
+UCLIBC_HAS_GETOPT_LONG=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/debug b/toolchain/uClibc/config-ng-1.0.6/debug
new file mode 100644
index 0000000..b366e66
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/debug
@@ -0,0 +1,6 @@ 
+DODEBUG=y
+DODEBUG_PT=y
+PTHREADS_DEBUG_SUPPORT=y
+SUPPORT_LD_DEBUG=y
+SUPPORT_LD_DEBUG_EARLY=y
+UCLIBC_MALLOC_DEBUGGING=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/i386 b/toolchain/uClibc/config-ng-1.0.6/i386
new file mode 100644
index 0000000..5ef264c
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/i386
@@ -0,0 +1,21 @@ 
+ARCH_LITTLE_ENDIAN=y
+# CONFIG_386 is not set
+CONFIG_486=y
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_ELAN is not set
+# CONFIG_GENERIC_386 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_NEHEMIAH is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_WINCHIPC6 is not set
+TARGET_ARCH="i386"
+TARGET_i386=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/i686 b/toolchain/uClibc/config-ng-1.0.6/i686
new file mode 100644
index 0000000..ba615f6
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/i686
@@ -0,0 +1,21 @@ 
+ARCH_LITTLE_ENDIAN=y
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+CONFIG_686=y
+# CONFIG_CRUSOE is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_ELAN is not set
+# CONFIG_GENERIC_386 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_NEHEMIAH is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_WINCHIPC6 is not set
+TARGET_ARCH="i386"
+TARGET_i386=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/m68k b/toolchain/uClibc/config-ng-1.0.6/m68k
new file mode 100644
index 0000000..14ce5ae
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/m68k
@@ -0,0 +1,6 @@ 
+ARCH_BIG_ENDIAN=y
+LINUXTHREADS_OLD=y
+TARGET_ARCH="m68k"
+TARGET_SUBARCH=""
+TARGET_m68k=y
+# UCLIBC_HAS_THREADS_NATIVE is not set
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips b/toolchain/uClibc/config-ng-1.0.6/mips
new file mode 100644
index 0000000..8cec22f
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips
@@ -0,0 +1,18 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_WANTS_BIG_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+CONFIG_MIPS_ISA_MIPS32=y
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+# CONFIG_MIPS_ISA_MIPS64 is not set
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+CONFIG_MIPS_O32_ABI=y
+TARGET_ARCH="mips"
+TARGET_mips=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64 b/toolchain/uClibc/config-ng-1.0.6/mips64
new file mode 100644
index 0000000..566d87a
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64
@@ -0,0 +1,18 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_WANTS_BIG_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+CONFIG_MIPS_N64_ABI=y
+# CONFIG_MIPS_O32_ABI is not set
+TARGET_ARCH="mips"
+TARGET_mips=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64.32 b/toolchain/uClibc/config-ng-1.0.6/mips64.32
new file mode 100644
index 0000000..b7ea8f4
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64.32
@@ -0,0 +1,19 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_WANTS_BIG_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+CONFIG_MIPS_O32_ABI=y
+TARGET_ARCH="mips"
+TARGET_mips=y
+TARGET_SUBARCH="mips64"
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64.64 b/toolchain/uClibc/config-ng-1.0.6/mips64.64
new file mode 100644
index 0000000..2a0b755
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64.64
@@ -0,0 +1,19 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_WANTS_BIG_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+CONFIG_MIPS_N64_ABI=y
+# CONFIG_MIPS_O32_ABI is not set
+TARGET_ARCH="mips"
+TARGET_mips=y
+TARGET_SUBARCH="mips64"
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64.n32 b/toolchain/uClibc/config-ng-1.0.6/mips64.n32
new file mode 100644
index 0000000..f8def58
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64.n32
@@ -0,0 +1,19 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_BIG_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_WANTS_BIG_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+CONFIG_MIPS_N32_ABI=y
+# CONFIG_MIPS_N64_ABI is not set
+# CONFIG_MIPS_O32_ABI is not set
+TARGET_ARCH="mips"
+TARGET_mips=y
+TARGET_SUBARCH="mips64"
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el b/toolchain/uClibc/config-ng-1.0.6/mips64el
new file mode 100644
index 0000000..5358078
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64el
@@ -0,0 +1,18 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+CONFIG_MIPS_N64_ABI=y
+# CONFIG_MIPS_O32_ABI is not set
+TARGET_ARCH="mips"
+TARGET_mips=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el.32 b/toolchain/uClibc/config-ng-1.0.6/mips64el.32
new file mode 100644
index 0000000..a10840b
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64el.32
@@ -0,0 +1,19 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+CONFIG_MIPS_O32_ABI=y
+TARGET_ARCH="mips"
+TARGET_mips=y
+TARGET_SUBARCH="mips64"
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el.64 b/toolchain/uClibc/config-ng-1.0.6/mips64el.64
new file mode 100644
index 0000000..8b90a54
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64el.64
@@ -0,0 +1,19 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+CONFIG_MIPS_N64_ABI=y
+# CONFIG_MIPS_O32_ABI is not set
+TARGET_ARCH="mips"
+TARGET_mips=y
+TARGET_SUBARCH="mips64"
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mips64el.n32 b/toolchain/uClibc/config-ng-1.0.6/mips64el.n32
new file mode 100644
index 0000000..4ac4d06
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mips64el.n32
@@ -0,0 +1,19 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+CONFIG_MIPS_ISA_MIPS64=y
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+CONFIG_MIPS_N32_ABI=y
+# CONFIG_MIPS_N64_ABI is not set
+# CONFIG_MIPS_O32_ABI is not set
+TARGET_ARCH="mips"
+TARGET_mips=y
+TARGET_SUBARCH="mips64"
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mipsel b/toolchain/uClibc/config-ng-1.0.6/mipsel
new file mode 100644
index 0000000..d9dedbb
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mipsel
@@ -0,0 +1,18 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+# CONFIG_MIPS_ISA_3 is not set
+# CONFIG_MIPS_ISA_4 is not set
+CONFIG_MIPS_ISA_MIPS32=y
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+# CONFIG_MIPS_ISA_MIPS64 is not set
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+CONFIG_MIPS_O32_ABI=y
+TARGET_ARCH="mips"
+TARGET_mips=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt b/toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt
new file mode 100644
index 0000000..1d42a70
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/mipsel.cobalt
@@ -0,0 +1,18 @@ 
+ARCH_ANY_ENDIAN=y
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+# CONFIG_MIPS_ISA_1 is not set
+# CONFIG_MIPS_ISA_2 is not set
+CONFIG_MIPS_ISA_3=y
+# CONFIG_MIPS_ISA_4 is not set
+# CONFIG_MIPS_ISA_MIPS32 is not set
+# CONFIG_MIPS_ISA_MIPS32R2 is not set
+# CONFIG_MIPS_ISA_MIPS64 is not set
+# CONFIG_MIPS_ISA_MIPS64R2 is not set
+# CONFIG_MIPS_N32_ABI is not set
+# CONFIG_MIPS_N64_ABI is not set
+CONFIG_MIPS_O32_ABI=y
+TARGET_ARCH="mips"
+TARGET_mips=y
+UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/powerpc b/toolchain/uClibc/config-ng-1.0.6/powerpc
new file mode 100644
index 0000000..5b1292d
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/powerpc
@@ -0,0 +1,6 @@ 
+ARCH_BIG_ENDIAN=y
+CONFIG_CLASSIC=y
+# CONFIG_E500 is not set
+TARGET_ARCH="powerpc"
+TARGET_SUBARCH="classic"
+TARGET_powerpc=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/powerpc.e500 b/toolchain/uClibc/config-ng-1.0.6/powerpc.e500
new file mode 100644
index 0000000..a835c3d
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/powerpc.e500
@@ -0,0 +1,6 @@ 
+ARCH_BIG_ENDIAN=y
+# CONFIG_CLASSIC is not set
+CONFIG_E500=y
+TARGET_ARCH="powerpc"
+TARGET_SUBARCH="classic"
+TARGET_powerpc=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/sparc b/toolchain/uClibc/config-ng-1.0.6/sparc
new file mode 100644
index 0000000..e1596c4
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/sparc
@@ -0,0 +1,8 @@ 
+ARCH_BIG_ENDIAN=y
+# CONFIG_SPARC_V7 is not set
+# CONFIG_SPARC_V8 is not set
+CONFIG_SPARC_V9=y
+# CONFIG_SPARC_V9B is not set
+TARGET_ARCH="sparc"
+TARGET_sparc=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/sparc.leon b/toolchain/uClibc/config-ng-1.0.6/sparc.leon
new file mode 100644
index 0000000..eb725ac
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/sparc.leon
@@ -0,0 +1,8 @@ 
+ARCH_BIG_ENDIAN=y
+# CONFIG_SPARC_V7 is not set
+CONFIG_SPARC_V8=y
+# CONFIG_SPARC_V9 is not set
+# CONFIG_SPARC_V9B is not set
+TARGET_ARCH="sparc"
+TARGET_sparc=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
diff --git a/toolchain/uClibc/config-ng-1.0.6/x86_64 b/toolchain/uClibc/config-ng-1.0.6/x86_64
new file mode 100644
index 0000000..b6dc2c2
--- /dev/null
+++ b/toolchain/uClibc/config-ng-1.0.6/x86_64
@@ -0,0 +1,6 @@ 
+ARCH_LITTLE_ENDIAN=y
+# LINUXTHREADS_NEW is not set
+TARGET_ARCH="x86_64"
+TARGET_x86_64=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_FPU=y