Pārlūkot izejas kodu

uclibc: convert to the package infrastructure

[Peter: update manual to match]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Thomas Petazzoni 12 gadi atpakaļ
vecāks
revīzija
a5e92d92e7

+ 2 - 2
docs/manual/customize-uclibc-config.txt

@@ -19,14 +19,14 @@ follow these steps:
   similar to the one used in the Linux kernel or Buildroot,
   similar to the one used in the Linux kernel or Buildroot,
   appears. Make your configuration changes as appropriate.
   appears. Make your configuration changes as appropriate.
 
 
-* Copy the +$(O)/toolchain/uClibc-VERSION/.config+ file to a different
+* Copy the +$(O)/build/uClibc-VERSION/.config+ file to a different
   place (e.g. +board/MANUFACTURER/BOARDNAME/uClibc.config+) and adjust
   place (e.g. +board/MANUFACTURER/BOARDNAME/uClibc.config+) and adjust
   the uClibc configuration file option +BR2_UCLIBC_CONFIG+ to refer to this
   the uClibc configuration file option +BR2_UCLIBC_CONFIG+ to refer to this
   configuration instead of the default one.
   configuration instead of the default one.
 
 
 * Run the compilation of Buildroot again.
 * Run the compilation of Buildroot again.
 
 
-Otherwise, you can simply change +toolchain/uClibc/uClibc-VERSION.config+,
+Otherwise, you can simply change +package/uclibc/uClibc-VERSION.config+,
 without running the configuration assistant.
 without running the configuration assistant.
 
 
 If you want to use an existing config file for uClibc, then see
 If you want to use an existing config file for uClibc, then see

+ 1 - 1
package/gcc/gcc-intermediate/gcc-intermediate.mk

@@ -10,7 +10,7 @@ GCC_INTERMEDIATE_SOURCE  = $(GCC_SOURCE)
 
 
 HOST_GCC_INTERMEDIATE_DEPENDENCIES = \
 HOST_GCC_INTERMEDIATE_DEPENDENCIES = \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
-	uclibc-configured
+	uclibc-configure
 
 
 HOST_GCC_INTERMEDIATE_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
 HOST_GCC_INTERMEDIATE_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
 
 

+ 0 - 0
toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch → package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch → package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch → package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch → package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.32.1-unshare.patch → package/uclibc/0.9.32.1/uclibc-unshare.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.33.2-OpenWRT-140-avr32_atomic_fix.patch → package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch → package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch → package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch


+ 0 - 0
toolchain/uClibc/uClibc-0.9.33.2-dup3.patch → package/uclibc/0.9.33.2/uclibc-dup3.patch


+ 166 - 0
package/uclibc/Config.in

@@ -0,0 +1,166 @@
+comment "uClibc Options"
+
+choice
+	prompt "uClibc C library Version"
+	default BR2_UCLIBC_VERSION_0_9_33
+	help
+	  Select the version of uClibc you wish to use.
+
+	config BR2_UCLIBC_VERSION_0_9_32
+		bool "uClibc 0.9.32.x"
+		depends on !(BR2_arc || BR2_avr32 || BR2_sh || BR2_xtensa)
+
+	config BR2_UCLIBC_VERSION_0_9_33
+		bool "uClibc 0.9.33.x"
+		depends on !(BR2_arc || BR2_xtensa)
+
+	config BR2_UCLIBC_VERSION_0_9_33_ARC
+		bool "uClibc 0.9.33.x-arc"
+		depends on BR2_arc
+
+	config BR2_UCLIBC_VERSION_SNAPSHOT
+		bool "daily snapshot"
+
+endchoice
+
+config BR2_USE_UCLIBC_SNAPSHOT
+	string "Date (yyyymmdd) of snapshot or 'snapshot' for latest"
+	default "snapshot"
+	depends on BR2_UCLIBC_VERSION_SNAPSHOT
+	help
+	    Use latest snapshot or one from a specific date?
+
+config BR2_UCLIBC_VERSION_STRING
+	string
+	default 0.9.32.1	if BR2_UCLIBC_VERSION_0_9_32
+	default 0.9.33.2	if BR2_UCLIBC_VERSION_0_9_33
+	default 0.9.33-arc	if BR2_UCLIBC_VERSION_0_9_33_ARC
+	default $BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT
+
+config BR2_UCLIBC_CONFIG
+	string "uClibc configuration file to use?"
+	default "package/uclibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
+	default "package/uclibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
+	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_0_9_33_ARC
+	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
+	help
+	  Some people may wish to use their own modified uClibc configuration
+	  file and will specify their config file location with this option.
+	  See also docs/README in this package.
+	  If unsure, use the default.
+
+config BR2_UCLIBC_INSTALL_TEST_SUITE
+	bool "Compile and install uClibc tests"
+	select BR2_PACKAGE_MAKE
+	help
+	  Enabling this option will compile and install the uClibc test suite.
+	  This is useful if you want to check if the uClibc library is working
+	  for your architecture and/or help developing uClibc.
+
+	  The test suite will be installed into /root/uClibc directory. To run
+	  the test suite enter the /root/uClibc/test directory and type
+	  "make UCLIBC_ONLY=1 CC=/bin/true check".
+
+	  See the /root/uClibc/test/README for additional information.
+
+	  This is not needed at all for normal builds, so you can safely say no
+	  if you do not plan to dig into your C library.
+
+# Mapping from the Buildroot architecture configuration options to the
+# uClibc architecture names.
+config BR2_UCLIBC_TARGET_ARCH
+	string
+	default arc	   if BR2_arcle || BR2_arceb
+	default arm	   if BR2_arm	|| BR2_armeb
+	default avr32	   if BR2_avr32
+	default bfin	   if BR2_bfin
+	default m68k	   if BR2_m68k
+	default mips	   if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+	default powerpc	   if BR2_powerpc
+	default sh	   if BR2_sh
+	default sparc	   if BR2_sparc
+	default xtensa	   if BR2_xtensa
+	default i386	   if BR2_i386
+	default x86_64	   if BR2_x86_64
+
+# This is only useful for uClibc <= 0.9.32. It can be removed once
+# Buildroot will support only uClibc >= 0.9.33 on ARM.
+config BR2_UCLIBC_ARM_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "arm"
+	default GENERIC_ARM	if BR2_fa526
+	default ARM7TDMI	if BR2_arm7tdmi
+	default ARM720T		if BR2_arm720t
+	default ARM920T		if BR2_arm920t
+	default ARM922T		if BR2_arm922t
+	default ARM926T		if BR2_arm926t
+	default ARM10T		if BR2_arm10t
+	default ARM1136JF_S	if BR2_arm1136jf_s
+	default ARM1176JZ_S	if BR2_arm1176jz_s
+	default ARM1176JZF_S	if BR2_arm1176jzf_s
+	default ARM_SA1100	if BR2_strongarm
+	default ARM_XSCALE	if BR2_xscale
+	default ARM_IWMMXT	if BR2_iwmmxt
+	default ARM_CORTEXA8	if BR2_cortex_a8
+	default ARM_CORTEXA9	if BR2_cortex_a9
+
+config BR2_UCLIBC_ARM_ABI
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "arm"
+	default OABI if BR2_ARM_OABI
+	default EABI if BR2_ARM_EABI
+
+config BR2_UCLIBC_ARM_BX
+	bool
+	depends on BR2_UCLIBC_TARGET_ARCH = "arm"
+	default y if !BR2_fa265 && !BR2_strongarm
+
+config BR2_UCLIBC_MIPS_ABI
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "mips"
+	default O32 if BR2_MIPS_OABI32
+	default N32 if BR2_MIPS_NABI32
+	default N64 if BR2_MIPS_NABI64
+
+config BR2_UCLIBC_MIPS_ISA
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "mips"
+	default 1 if BR2_mips_1
+	default 2 if BR2_mips_2
+	default 3 if BR2_mips_3
+	default 4 if BR2_mips_4
+	default mips32 if BR2_mips_32
+	default mips32r2 if BR2_mips_32r2
+	default mips64 if BR2_mips_64
+
+config BR2_UCLIBC_SH_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "sh"
+	default SHA2 if BR2_sh2
+	default SH3  if BR2_sh3 || BR2_sh3eb
+	default SH4  if BR2_sh4 || BR2_sh4eb
+
+config BR2_UCLIBC_SPARC_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "sparc"
+	default V7	if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
+	default V8	if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
+
+config BR2_UCLIBC_POWERPC_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "powerpc"
+	default CLASSIC if !BR2_powerpc_8540 && !BR2_powerpc_8548 && !BR2_powerpc_e500mc
+	default E500    if BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc
+
+config BR2_UCLIBC_X86_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "i386"
+	default 386     if BR2_x86_i386
+	default 486	if BR2_x86_i486
+	default 586	if BR2_x86_i586
+	default 586MMX	if BR2_x86_pentium_mmx
+	default 686	if BR2_x86_i686 || BR2_x86_pentiumpro
+	default PENTIUMII  if BR2_x86_pentium2
+	default PENTIUMIII if BR2_x86_pentium3
+	default PENTIUM4   if BR2_x86_pentium4 || BR2_x86_pentium_m || \
+			      BR2_x86_nocona || BR2_x86_core2

+ 0 - 0
toolchain/uClibc/uClibc-0.9.32.config → package/uclibc/uClibc-0.9.32.config


+ 0 - 0
toolchain/uClibc/uClibc-0.9.33.config → package/uclibc/uClibc-0.9.33.config


+ 0 - 0
toolchain/uClibc/uClibc-snapshot.config → package/uclibc/uClibc-snapshot.config


+ 484 - 0
package/uclibc/uclibc.mk

@@ -0,0 +1,484 @@
+################################################################################
+#
+# uclibc
+#
+################################################################################
+
+UCLIBC_VERSION = $(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
+UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.xz
+
+ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
+UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots
+else ifeq ($(findstring arc,$(UCLIBC_VERSION)),arc)
+UCLIBC_SITE = $(BR2_ARC_SITE)
+UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.bz2
+else
+UCLIBC_SITE = http://www.uclibc.org/downloads
+endif
+
+UCLIBC_INSTALL_STAGING = YES
+
+# Before uClibc is configured, we must have the first stage
+# cross-compiler and the kernel headers
+UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers
+
+# Before uClibc is built, we must have the second stage cross-compiler
+uclibc-build: host-gcc-intermediate
+
+# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
+# setting.
+ifndef UCLIBC_CONFIG_FILE
+UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
+endif
+
+UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH))
+
+ifeq ($(GENERATE_LOCALE),)
+# We need at least one locale
+UCLIBC_LOCALES = en_US
+else
+# Strip out the encoding part of locale names, if any
+UCLIBC_LOCALES = $(foreach locale,$(GENERATE_LOCALE),\
+		   $(firstword $(subst .,$(space),$(locale))))
+endif
+
+#
+# Utility functions to manipulation the uClibc configuration file
+#
+
+define UCLIBC_OPT_SET
+	$(SED) '/$(1)/d' $(3)/.config
+	echo '$(1)=$(2)' >> $(3)/.config
+endef
+
+define UCLIBC_OPT_UNSET
+	$(SED) '/$(1)/d' $(2)/.config
+	echo '# $(1) is not set' >> $(2)/.config
+endef
+
+#
+# ARM definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),arm)
+UCLIBC_ARM_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_ARM_TYPE))
+
+define UCLIBC_ARM_TYPE_CONFIG
+	$(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \
+		$(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_ARM_TYPE),y,$(@D))
+endef
+
+UCLIBC_ARM_ABI = CONFIG_ARM_$(call qstrip,$(BR2_UCLIBC_ARM_ABI))
+
+define UCLIBC_ARM_ABI_CONFIG
+	$(SED) '/CONFIG_ARM_.ABI/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_ARM_ABI),y,$(@D))
+endef
+
+ifeq ($(BR2_UCLIBC_ARM_BX),y)
+define UCLIBC_ARM_BX_CONFIG
+	$(call UCLIBC_OPT_SET,USE_BX,y,$(@D))
+endef
+else
+define UCLIBC_ARM_BX_CONFIG
+	$(call UCLIBC_OPT_UNSET,USE_BX,y,$(@D))
+endef
+endif
+
+endif # arm
+
+#
+# MIPS definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),mips)
+UCLIBC_MIPS_ABI = CONFIG_MIPS_$(call qstrip,$(BR2_UCLIBC_MIPS_ABI))_ABI
+define UCLIBC_MIPS_ABI_CONFIG
+	$(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_MIPS_ABI),y,$(@D))
+endef
+
+UCLIBC_MIPS_ISA = CONFIG_MIPS_ISA_$(call qstrip,$(BR2_UCLIBC_MIPS_ISA))
+define UCLIBC_MIPS_ISA_CONFIG
+	$(SED) '/CONFIG_MIPS_ISA_.*/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_MIPS_ISA),y,$(@D))
+endef
+endif # mips
+
+#
+# SH definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),sh)
+UCLIBC_SH_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_SH_TYPE))
+define UCLIBC_SH_TYPE_CONFIG
+	$(SED) '/CONFIG_SH[234A]*/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_SH_TYPE),y,$(@Ð))
+endef
+endif # sh
+
+#
+# SPARC definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),sparc)
+UCLIBC_SPARC_TYPE = CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE))
+define UCLIBC_SPARC_TYPE_CONFIG
+	$(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
+		 $(@Ð)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_SPARC_TYPE),y,$(@D))
+endef
+endif # sparc
+
+#
+# PowerPC definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
+UCLIBC_POWERPC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_POWERPC_TYPE))
+define UCLIBC_POWERPC_TYPE_CONFIG
+	$(call UCLIBC_OPT_UNSET,CONFIG_GENERIC,$(@D))
+	$(call UCLIBC_OPT_UNSET,CONFIG_E500,$(@D))
+	$(call UCLIBC_OPT_SET,$(UCLIBC_POWERPC_TYPE),y,$(@Ð))
+endef
+endif # powerpc
+
+#
+# AVR32 definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),avr32)
+define UCLIBC_AVR32_CONFIG
+	$(call UCLIBC_OPT_SET,LINKRELAX,y,$(@D))
+endef
+endif # avr32
+
+#
+# x86 definitions
+#
+ifeq ($(UCLIBC_TARGET_ARCH),i386)
+UCLIBC_X86_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_X86_TYPE))
+define UCLIBC_X86_TYPE_CONFIG
+	$(call UCLIBC_OPT_SET,$(UCLIBC_X86_TYPE),y,$(@D))
+endef
+endif
+
+#
+# ARC definitions
+#
+ifeq ($(UCLIBC_TARGET_ARCH),arc)
+REALLY_NOSTDLIB = -really-nostdlib
+endif
+
+#
+# Endianess
+#
+
+ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG)
+define UCLIBC_ENDIAN_CONFIG
+	$(call UCLIBC_OPT_SET,ARCH_BIG_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_SET,ARCH_WANTS_BIG_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_LITTLE_ENDIAN,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_WANTS_LITTLE_ENDIAN,$(@D))
+endef
+else
+define UCLIBC_ENDIAN_CONFIG
+	$(call UCLIBC_OPT_SET,ARCH_LITTLE_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_SET,ARCH_WANTS_LITTLE_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_BIG_ENDIAN,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_WANTS_BIG_ENDIAN,$(@D))
+endef
+endif
+
+#
+# Largefile
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LARGEFILE),y)
+define UCLIBC_LARGEFILE_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_LFS,y,$(@D))
+endef
+else
+define UCLIBC_LARGEFILE_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_LFS,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FOPEN_LARGEFILE_MODE,$(@D))
+endef
+endif
+
+#
+# IPv6
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_IPV6),y)
+UCLIBC_IPV6_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_IPV6,y,$(@D))
+else
+UCLIBC_IPV6_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_IPV6,$(@D))
+endif
+
+#
+# RPC
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_RPC),y)
+define UCLIBC_RPC_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_RPC,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FULL_RPC,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_REENTRANT_RPC,y,$(@D))
+endef
+else
+define UCLIBC_RPC_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_RPC,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FULL_RPC,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_REENTRANT_RPC,$(@D))
+endef
+endif
+
+#
+# soft-float
+#
+
+ifeq ($(BR2_SOFT_FLOAT),y)
+define UCLIBC_FLOAT_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FPU,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FLOATS,y,$(@D))
+	$(call UCLIBC_OPT_SET,DO_C99_MATH,y,$(@D))
+endef
+else
+define UCLIBC_FLOAT_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FPU,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FLOATS,y,$(@D))
+endef
+endif
+
+#
+# SSP
+#
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
+UCLIBC_SSP_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_SSP,y,$(@D))
+else
+UCLIBC_SSP_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_SSP,$(@D))
+endif
+
+#
+# Threads
+#
+ifeq ($(BR2_PTHREADS_NONE),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D))
+endef
+else ifeq ($(BR2_PTHREADS),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D))
+	$(call UCLIBC_OPT_SET,LINUXTHREADS_NEW,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D))
+endef
+else ifeq ($(BR2_PTHREADS_OLD),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_NEW,$(@D))
+	$(call UCLIBC_OPT_SET,LINUXTHREADS_OLD,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D))
+endef
+else ifeq ($(BR2_PTHREADS_NATIVE),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_NEW,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS_NATIVE,y,$(@D))
+endef
+endif
+
+#
+# Thread debug
+#
+
+ifeq ($(BR2_PTHREAD_DEBUG),y)
+UCLIBC_THREAD_DEBUG_CONFIG = $(call UCLIBC_OPT_SET,PTHREADS_DEBUG_SUPPORT,y,$(@D))
+else
+UCLIBC_THREAD_DEBUG_CONFIG = $(call UCLIBC_OPT_UNSET,PTHREADS_DEBUG_SUPPORT,$(@D))
+endif
+
+#
+# Locale
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
+define UCLIBC_LOCALE_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_LOCALE,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_BUILD_ALL_LOCALE,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_BUILD_MINIMAL_LOCALE,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_PREGENERATED_LOCALE_DATA,$(@D))
+	$(call UCLIBC_OPT_UNSET,DOWNLOAD_PREGENERATED_LOCALE_DATA,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_XLOCALE,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_GLIBC_DIGIT_GROUPING,$(@D))
+endef
+else
+define UCLIBC_LOCALE_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_LOCALE,$(@D))
+endef
+endif
+
+#
+# wchar
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
+UCLIBC_WCHAR_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_WCHAR,y,$(@D))
+else
+UCLIBC_WCHAR_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_WCHAR,$(@D))
+endif
+
+#
+# debug
+#
+
+ifeq ($(BR2_ENABLE_DEBUG),y)
+UCLIBC_DEBUG_CONFIG = $(call UCLIBC_OPT_SET,DODEBUG,y,$(@D))
+endif
+
+#
+# strip
+#
+
+ifeq ($(BR2_STRIP_none),y)
+UCLIBC_STRIP_CONFIG = $(call UCLIBC_OPT_SET,DOSTRIP,y,$(@D))
+endif
+
+#
+# Commands
+#
+
+UCLIBC_MAKE_FLAGS = \
+	ARCH="$(UCLIBC_TARGET_ARCH)" \
+	CROSS_COMPILE="$(TARGET_CROSS)" \
+	UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
+	HOSTCC="$(HOSTCC)"
+
+define UCLIBC_CONFIGURE_CMDS
+	cp -f $(UCLIBC_CONFIG_FILE) $(@D)/.config
+	$(call UCLIBC_OPT_SET,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(@D))
+	$(call UCLIBC_OPT_SET,TARGET_$(UCLIBC_TARGET_ARCH),y,$(@D))
+	$(call UCLIBC_OPT_SET,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)",$(@D))
+	$(call UCLIBC_OPT_SET,KERNEL_HEADERS,"$(STAGING_DIR)/usr/include",$(@D))
+	$(call UCLIBC_OPT_SET,RUNTIME_PREFIX,"/",$(@D))
+	$(call UCLIBC_OPT_SET,DEVEL_PREFIX,"/usr",$(@D))
+	$(call UCLIBC_OPT_SET,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D))
+	$(UCLIBC_ARM_TYPE_CONFIG)
+	$(UCLIBC_ARM_ABI_CONFIG)
+	$(UCLIBC_ARM_BX_CONFIG)
+	$(UCLIBC_MIPS_ABI_CONFIG)
+	$(UCLIBC_MIPS_ISA_CONFIG)
+	$(UCLIBC_SH_TYPE_CONFIG)
+	$(UCLIBC_SPARC_TYPE_CONFIG)
+	$(UCLIBC_POWERPC_TYPE_CONFIG)
+	$(UCLIBC_AVR32_CONFIG)
+	$(UCLIBC_X86_TYPE_CONFIG)
+	$(UCLIBC_ENDIAN_CONFIG)
+	$(UCLIBC_LARGEFILE_CONFIG)
+	$(UCLIBC_IPV6_CONFIG)
+	$(UCLIBC_RPC_CONFIG)
+	$(UCLIBC_FLOAT_CONFIG)
+	$(UCLIBC_SSP_CONFIG)
+	$(UCLIBC_THREAD_CONFIG)
+	$(UCLIBC_THREAD_DEBUG_CONFIG)
+	$(UCLIBC_LOCALE_CONFIG)
+	$(UCLIBC_WCHAR_CONFIG)
+	$(UCLIBC_STRIP_CONFIG)
+	$(UCLIBC_DEBUG_CONFIG)
+	yes "" | $(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
+		oldconfig
+	$(MAKE1) -C $(UCLIBC_DIR) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
+		headers lib/crt1.o lib/crti.o lib/crtn.o \
+		install_headers
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+		-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+		-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so
+	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/
+endef
+
+ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
+define UCLIBC_BUILD_TEST_SUITE
+	$(MAKE1) -C $(@D)/test \
+		$(UCLIBC_MAKE_FLAGS) \
+		ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \
+		UCLIBC_ONLY=1 \
+		TEST_INSTALLED_UCLIBC=1 \
+		compile
+endef
+endif
+
+define UCLIBC_BUILD_CMDS
+	$(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX= \
+		DEVEL_PREFIX=/ \
+		RUNTIME_PREFIX=/ \
+		all
+	$(MAKE1) -C $(@D)/utils \
+		PREFIX=$(HOST_DIR) \
+		HOSTCC="$(HOSTCC)" hostutils
+	$(UCLIBC_BUILD_TEST_SUITE)
+endef
+
+ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
+define UCLIBC_INSTALL_TEST_SUITE
+	mkdir -p $(TARGET_DIR)/root/uClibc
+	cp -rdpf $(@D)/test $(TARGET_DIR)/root/uClibc
+	$(INSTALL) -D -m 0644 $(@D)/Rules.mak $(TARGET_DIR)/root/uClibc/Rules.mak
+	$(INSTALL) -D -m 0644 $(@D)/.config $(TARGET_DIR)/root/uClibc/.config
+endef
+endif
+
+define UCLIBC_INSTALL_TARGET_CMDS
+	$(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(TARGET_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=/ \
+		install_runtime
+	$(MAKE1) -C $(@D) \
+		CC="$(TARGET_CC)" CPP="$(TARGET_CPP)" LD="$(TARGET_LD)" \
+		ARCH="$(UCLIBC_TARGET_ARCH)" \
+		PREFIX=$(TARGET_DIR) \
+		utils install_utils
+	$(UCLIBC_INSTALL_TEST_SUITE)
+endef
+
+define UCLIBC_INSTALL_STAGING_CMDS
+	$(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=/ \
+		install_runtime install_dev
+	install -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd
+	ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd
+	install -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig
+	ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig
+endef
+
+uclibc-menuconfig: dirs uclibc-configure
+	$(MAKE1) -C $(UCLIBC_DIR) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR)/ \
+		menuconfig
+	rm -f $(UCLIBC_DIR)/.stamp_{built,target_installed,staging_installed}
+
+$(eval $(generic-package))

+ 0 - 4
toolchain/toolchain-buildroot.mk

@@ -1,7 +1,3 @@
-# Include files required for the internal toolchain backend
-
-include toolchain/uClibc/uclibc.mk
-
 # Triggerring the build of the host-gcc-final will automaticaly do the
 # Triggerring the build of the host-gcc-final will automaticaly do the
 # build of binutils, uClibc, kernel headers and all the intermediate
 # build of binutils, uClibc, kernel headers and all the intermediate
 # gcc steps.
 # gcc steps.

+ 1 - 1
toolchain/toolchain-buildroot/Config.in

@@ -2,7 +2,7 @@
 
 
 if BR2_TOOLCHAIN_BUILDROOT
 if BR2_TOOLCHAIN_BUILDROOT
 source "package/linux-headers/Config.in.host"
 source "package/linux-headers/Config.in.host"
-source "toolchain/uClibc/Config.in"
+source "package/uclibc/Config.in"
 source "package/binutils/Config.in.host"
 source "package/binutils/Config.in.host"
 source "package/gcc/Config.in.host"
 source "package/gcc/Config.in.host"
 endif
 endif

+ 0 - 1
toolchain/toolchain-crosstool-ng.mk

@@ -3,4 +3,3 @@
 # Explicit ordering:
 # Explicit ordering:
 include toolchain/helpers.mk
 include toolchain/helpers.mk
 include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
 include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
-include toolchain/uClibc/uclibc.mk

+ 1 - 1
toolchain/toolchain-crosstool-ng/crosstool-ng.mk

@@ -10,7 +10,7 @@
 
 
 CTNG_DIR := $(BUILD_DIR)/build-toolchain
 CTNG_DIR := $(BUILD_DIR)/build-toolchain
 
 
-CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/toolchain/uClibc/uClibc-0.9.33.config
+CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/package/uclibc/uClibc-0.9.33.config
 CTNG_CONFIG_FILE:=$(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
 CTNG_CONFIG_FILE:=$(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
 
 
 # Hack! ct-ng is in fact a Makefile script. As such, it accepts all
 # Hack! ct-ng is in fact a Makefile script. As such, it accepts all

+ 0 - 1
toolchain/toolchain-external.mk

@@ -2,4 +2,3 @@
 
 
 include toolchain/helpers.mk
 include toolchain/helpers.mk
 include toolchain/toolchain-external/ext-tool.mk
 include toolchain/toolchain-external/ext-tool.mk
-include toolchain/uClibc/uclibc.mk

+ 0 - 97
toolchain/uClibc/Config.in

@@ -1,97 +0,0 @@
-# Choose uClibc options
-#
-
-comment "uClibc Options"
-
-choice
-	prompt "uClibc C library Version"
-	default BR2_UCLIBC_VERSION_0_9_33
-	help
-	  Select the version of uClibc you wish to use.
-
-	config BR2_UCLIBC_VERSION_0_9_32
-		bool "uClibc 0.9.32.x"
-		depends on !(BR2_arc || BR2_avr32 || BR2_sh || BR2_xtensa)
-
-	config BR2_UCLIBC_VERSION_0_9_33
-		bool "uClibc 0.9.33.x"
-		depends on !(BR2_arc || BR2_xtensa)
-
-	config BR2_UCLIBC_VERSION_0_9_33_ARC
-		bool "uClibc 0.9.33.x-arc"
-		depends on BR2_arc
-
-	config BR2_UCLIBC_VERSION_SNAPSHOT
-		bool "daily snapshot"
-
-endchoice
-
-config BR2_USE_UCLIBC_SNAPSHOT
-	string "Date (yyyymmdd) of snapshot or 'snapshot' for latest"
-	default "snapshot"
-	depends on BR2_UCLIBC_VERSION_SNAPSHOT
-	help
-	    Use latest snapshot or one from a specific date?
-
-config BR2_UCLIBC_VERSION_STRING
-	string
-	default 0.9.32.1	if BR2_UCLIBC_VERSION_0_9_32
-	default 0.9.33.2	if BR2_UCLIBC_VERSION_0_9_33
-	default 0.9.33-arc	if BR2_UCLIBC_VERSION_0_9_33_ARC
-	default $BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT
-
-config BR2_UCLIBC_CONFIG
-	string "uClibc configuration file to use?"
-	default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
-	default "toolchain/uClibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
-	default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_0_9_33_ARC
-	default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
-	help
-	  Some people may wish to use their own modified uClibc configuration
-	  file and will specify their config file location with this option.
-	  See also docs/README in this package.
-	  If unsure, use the default.
-
-config BR2_UCLIBC_INSTALL_TEST_SUITE
-	bool "Compile and install uClibc tests"
-	select BR2_PACKAGE_MAKE
-	help
-	  Enabling this option will compile and install the uClibc test suite.
-	  This is useful if you want to check if the uClibc library is working
-	  for your architecture and/or help developing uClibc.
-
-	  The test suite will be installed into /root/uClibc directory. To run
-	  the test suite enter the /root/uClibc/test directory and type
-	  "make UCLIBC_ONLY=1 CC=/bin/true check".
-
-	  See the /root/uClibc/test/README for additional information.
-
-	  This is not needed at all for normal builds, so you can safely say no
-	  if you do not plan to dig into your C library.
-
-# This is only useful for uClibc <= 0.9.32. It can be removed once
-# Buildroot will support only uClibc >= 0.9.33 on ARM.
-config BR2_UCLIBC_ARM_TYPE
-	string
-	depends on BR2_arm || BR2_armeb
-	default GENERIC_ARM	if BR2_fa526
-	default ARM7TDMI	if BR2_arm7tdmi
-	default ARM720T		if BR2_arm720t
-	default ARM920T		if BR2_arm920t
-	default ARM922T		if BR2_arm922t
-	default ARM926T		if BR2_arm926t
-	default ARM10T		if BR2_arm10t
-	default ARM1136JF_S	if BR2_arm1136jf_s
-	default ARM1176JZ_S	if BR2_arm1176jz_s
-	default ARM1176JZF_S	if BR2_arm1176jzf_s
-	default ARM_SA1100	if BR2_strongarm
-	default ARM_XSCALE	if BR2_xscale
-	default ARM_IWMMXT	if BR2_iwmmxt
-	default ARM_CORTEXA8	if BR2_cortex_a8
-	default ARM_CORTEXA9	if BR2_cortex_a9
-
-config BR2_UCLIBC_SPARC_TYPE
-	string
-	depends on BR2_sparc
-	default V7	if BR2_sparc_v7 || BR2_sparc_cypress || BR2_sparc_sparclite || BR2_sparc_f930 || BR2_sparc_f934 || BR2_sparc_sparclite86x || BR2_sparc_sparclet || BR2_sparc_tsc701 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
-	default V8	if BR2_sparc_v8 || BR2_sparc_supersparc || BR2_sparc_hypersparc || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8

+ 0 - 610
toolchain/uClibc/uclibc.mk

@@ -1,610 +0,0 @@
-################################################################################
-#
-# uClibc (the C library)
-#
-################################################################################
-
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-
-# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
-# setting.
-ifndef UCLIBC_CONFIG_FILE
-UCLIBC_CONFIG_FILE=$(call qstrip,$(BR2_UCLIBC_CONFIG))
-endif
-
-UCLIBC_VERSION:=$(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
-
-ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
-UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc
-else ifeq ($(findstring arc,$(UCLIBC_VERSION)),arc)
-UCLIBC_SITE:=$(BR2_ARC_SITE)
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
-else
-UCLIBC_SITE:=http://www.uclibc.org/downloads
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
-endif
-
-UCLIBC_PATCH_DIR:=toolchain/uClibc/
-UCLIBC_SOURCE:=uClibc-$(UCLIBC_VERSION).tar.bz2
-
-UCLIBC_CAT:=$(BZCAT)
-
-UCLIBC_TARGET_ARCH:=$(shell $(SHELL) -c "echo $(ARCH) | sed \
-		-e 's/-.*//' \
-		-e 's/i.86/i386/' \
-		-e 's/sparc.*/sparc/' \
-		-e 's/arc.*/arc/g' \
-		-e 's/arm.*/arm/g' \
-		-e 's/m68k.*/m68k/' \
-		-e 's/ppc/powerpc/g' \
-		-e 's/v850.*/v850/g' \
-		-e 's/sh[234].*/sh/' \
-		-e 's/mips.*/mips/' \
-		-e 's/cris.*/cris/' \
-		-e 's/xtensa.*/xtensa/' \
-")
-
-UCLIBC_TARGET_ENDIAN:=$(call qstrip,$(BR2_ENDIAN))
-
-ifeq ($(UCLIBC_TARGET_ENDIAN),LITTLE)
-UCLIBC_NOT_TARGET_ENDIAN:=BIG
-else
-UCLIBC_NOT_TARGET_ENDIAN:=LITTLE
-endif
-
-UCLIBC_ARM_TYPE:=CONFIG_$(call qstrip,$(BR2_UCLIBC_ARM_TYPE))
-UCLIBC_SPARC_TYPE:=CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE))
-
-ifeq ($(GENERATE_LOCALE),)
-# We need at least one locale
-UCLIBC_LOCALES = en_US
-else
-# Strip out the encoding part of locale names, if any
-UCLIBC_LOCALES = $(foreach locale,$(GENERATE_LOCALE),\
-		   $(firstword $(subst .,$(space),$(locale))))
-endif
-
-$(DL_DIR)/$(UCLIBC_SOURCE):
-	$(Q)$(call MESSAGE,"Downloading uClibc")
-	$(call DOWNLOAD,$(UCLIBC_SITE:/=)/$(UCLIBC_SOURCE))
-
-uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
-$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
-	$(Q)$(call MESSAGE,"Extracting uClibc")
-	mkdir -p $(TOOLCHAIN_DIR)
-	rm -rf $(UCLIBC_DIR)
-	$(UCLIBC_CAT) $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
-	touch $@
-
-uclibc-patched: $(UCLIBC_DIR)/.patched
-$(UCLIBC_DIR)/.patched: $(UCLIBC_DIR)/.unpacked
-	$(Q)$(call MESSAGE,"Patching uClibc")
-ifneq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
-	support/scripts/apply-patches.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) \
-		uClibc-$(UCLIBC_VERSION)-\*.patch \
-		uClibc-$(UCLIBC_VERSION)-\*.patch.$(ARCH)
-else
-	support/scripts/apply-patches.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) \
-		uClibc.\*.patch uClibc.\*.patch.$(ARCH)
-endif
-	touch $@
-
-
-# Some targets may wish to provide their own UCLIBC_CONFIG_FILE...
-$(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.patched $(UCLIBC_CONFIG_FILE)
-	$(Q)$(call MESSAGE,"Pre-configuring uClibc")
-	cp -f $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
-		-e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
-		-e 's,^TARGET_ARCH=".*",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \
-		-e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(STAGING_DIR)/usr/include\",g' \
-		-e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \
-		-e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \
-		-e 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \
-		$(UCLIBC_DIR)/.oldconfig
-ifeq ($(UCLIBC_TARGET_ARCH),arm)
-	(/bin/echo "# CONFIG_GENERIC_ARM is not set"; \
-	 /bin/echo "# CONFIG_ARM610 is not set"; \
-	 /bin/echo "# CONFIG_ARM710 is not set"; \
-	 /bin/echo "# CONFIG_ARM7TDMI is not set"; \
-	 /bin/echo "# CONFIG_ARM720T is not set"; \
-	 /bin/echo "# CONFIG_ARM920T is not set"; \
-	 /bin/echo "# CONFIG_ARM922T is not set"; \
-	 /bin/echo "# CONFIG_ARM926T is not set"; \
-	 /bin/echo "# CONFIG_ARM10T is not set"; \
-	 /bin/echo "# CONFIG_ARM1136JF_S is not set"; \
-	 /bin/echo "# CONFIG_ARM1176JZ_S is not set"; \
-	 /bin/echo "# CONFIG_ARM1176JZF_S is not set"; \
-	 /bin/echo "# CONFIG_ARM_SA110 is not set"; \
-	 /bin/echo "# CONFIG_ARM_SA1100 is not set"; \
-	 /bin/echo "# CONFIG_ARM_XSCALE is not set"; \
-	 /bin/echo "# CONFIG_ARM_IWMMXT is not set"; \
-	) >> $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \
-		 $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's/^.*$(UCLIBC_ARM_TYPE).*/$(UCLIBC_ARM_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/CONFIG_ARM_.ABI/d' $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_ARM_EABI),y)
-	/bin/echo "# CONFIG_ARM_OABI is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "CONFIG_ARM_EABI=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_ARM_OABI),y)
-	/bin/echo "CONFIG_ARM_OABI=y" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_ARM_EABI is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_fa526)$(BR2_strongarm),y)
-	$(SED) 's,USE_BX=y,# USE_BX is not set,' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),mips)
-	$(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/CONFIG_MIPS_ISA_.*/d' $(UCLIBC_DIR)/.oldconfig
-	(/bin/echo "# CONFIG_MIPS_O32_ABI is not set"; \
-	 /bin/echo "# CONFIG_MIPS_N32_ABI is not set"; \
-	 /bin/echo "# CONFIG_MIPS_N64_ABI is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_1 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_2 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_3 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_4 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_MIPS32 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_MIPS32R2 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_MIPS64 is not set"; \
-	) >> $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_MIPS_OABI32),y)
-	$(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_MIPS_NABI32),y)
-	$(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_MIPS_NABI64),y)
-	$(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_1),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_1\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_2),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_2\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_3),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_3\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_4),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_4\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_32),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32\)[^R].*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_32r2),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32R2\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_64),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS64\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),sh)
-	/bin/echo "# CONFIG_SH2A is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_SH2 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_SH3 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_SH4 is not set" >> $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_sh2a),y)
-	$(SED) 's,# CONFIG_SH2A is not set,CONFIG_SH2A=y,g' $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh2),y)
-	$(SED) 's,# CONFIG_SH2 is not set,CONFIG_SH2=y,g' $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh3eb),y)
-	$(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh3),y)
-	$(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh4eb),y)
-	$(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh4),y)
-	$(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),sparc)
-	$(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
-		 $(UCLIBC_DIR)/.oldconfig
-	for i in V7 V8 V9 V9B; do echo "# CONFIG_SPARC_$$i is not set"; done \
-		>> $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's/^.*$(UCLIBC_SPARC_TYPE)[^B].*/$(UCLIBC_SPARC_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
-ifeq ($(BR2_powerpc_8540)$(BR2_powerpc_8548)$(BR2_powerpc_e500mc),y)
-	/bin/echo "# CONFIG_CLASSIC is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "CONFIG_E500=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	/bin/echo "CONFIG_CLASSIC=y" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_E500 is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),avr32)
-	/bin/echo "LINKRELAX=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifneq ($(UCLIBC_TARGET_ENDIAN),)
-	# The above doesn't work for me, so redo
-	$(SED) 's/.*\(ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
-		-e 's/.*\(ARCH_WANTS_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
-		-e 's/.*\(ARCH_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \
-		-e 's/.*\(ARCH_WANTS_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \
-		$(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LARGEFILE),y)
-	$(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=n,g' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/.*UCLIBC_HAS_FOPEN_LARGEFILE_MODE.*/d' $(UCLIBC_DIR)/.oldconfig
-	echo "# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_IPV6),y)
-	$(SED) 's,^.*UCLIBC_HAS_IPV6.*,UCLIBC_HAS_IPV6=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_IPV6.*,UCLIBC_HAS_IPV6=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_RPC),y)
-	$(SED) 's,^.*UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=y,g' \
-		-e 's,^.*UCLIBC_HAS_FULL_RPC.*,UCLIBC_HAS_FULL_RPC=y,g' \
-		-e 's,^.*UCLIBC_HAS_REENTRANT_RPC.*,UCLIBC_HAS_REENTRANT_RPC=y,g' \
-		$(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=n,g' \
-		-e 's,^.*UCLIBC_HAS_FULL_RPC.*,UCLIBC_HAS_FULL_RPC=n,g' \
-		-e 's,^.*UCLIBC_HAS_REENTRANT_RPC.*,UCLIBC_HAS_REENTRANT_RPC=n,g' \
-		$(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_SOFT_FLOAT),y)
-	$(SED) 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n,g' \
-		-e 's,^[^_]*HAS_FPU.*,HAS_FPU=n,g' \
-		-e 's,.*UCLIBC_HAS_FLOATS.*,UCLIBC_HAS_FLOATS=y,g' \
-		-e 's,.*DO_C99_MATH.*,DO_C99_MATH=y,g' \
-		$(UCLIBC_DIR)/.oldconfig
-	#$(SED) 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n\nHAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) '/UCLIBC_HAS_FLOATS/d' \
-		-e 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=y\nHAS_FPU=y\nUCLIBC_HAS_FLOATS=y\n,g' \
-		$(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
-	$(SED) 's,^.*UCLIBC_HAS_SSP[^_].*,UCLIBC_HAS_SSP=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_SSP[^_].*,UCLIBC_HAS_SSP=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-	$(SED) '/UCLIBC_HAS_THREADS/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/LINUXTHREADS/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/LINUXTHREADS_OLD/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/PTHREADS_DEBUG_SUPPORT/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/UCLIBC_HAS_THREADS_NATIVE/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/DODEBUG /d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/DOSTRIP/d' $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_STRIP_none),y)
-	echo "# DOSTRIP is not set" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "DOSTRIP=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_ENABLE_DEBUG),y)
-	echo "DODEBUG=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# DODEBUG is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS_NONE),y)
-	echo "# UCLIBC_HAS_THREADS is not set" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "UCLIBC_HAS_THREADS=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS),y)
-	echo "LINUXTHREADS=y" >> $(UCLIBC_DIR)/.oldconfig
-	echo "LINUXTHREADS_NEW=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# LINUXTHREADS is not set" >> $(UCLIBC_DIR)/.oldconfig
-	echo "# LINUXTHREADS_NEW is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS_OLD),y)
-	echo "LINUXTHREADS_OLD=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# LINUXTHREADS_OLD is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS_NATIVE),y)
-	echo "UCLIBC_HAS_THREADS_NATIVE=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# UCLIBC_HAS_THREADS_NATIVE is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREAD_DEBUG),y)
-	echo "PTHREADS_DEBUG_SUPPORT=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# PTHREADS_DEBUG_SUPPORT is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
-	$(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y\n# UCLIBC_BUILD_ALL_LOCALE is not set\nUCLIBC_BUILD_MINIMAL_LOCALE=y\nUCLIBC_BUILD_MINIMAL_LOCALES="$(UCLIBC_LOCALES)"\nUCLIBC_PREGENERATED_LOCALE_DATA=n\nUCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=n\nUCLIBC_HAS_XLOCALE=y\nUCLIBC_HAS_GLIBC_DIGIT_GROUPING=n\n,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
-	$(SED) 's,^.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ("$(KERNEL_ARCH)","i386")
-	/bin/echo "# CONFIG_GENERIC_386 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_386 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_486 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_586 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_586MMX is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_686 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_PENTIUMII is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_PENTIUMIII is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_PENTIUM4 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_K6 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_K7 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_ELAN is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_CRUSOE is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_WINCHIPC6 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_WINCHIP2 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_CYRIXIII is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_NEHEMIAH is not set" >> $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_x86_i386),y)
-	$(SED) 's,# CONFIG_386 is not set,CONFIG_386=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_i486),y)
-	$(SED) 's,# CONFIG_486 is not set,CONFIG_486=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_i586),y)
-	$(SED) 's,# CONFIG_586 is not set,CONFIG_586=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium_mmx),y)
-	$(SED) 's,# CONFIG_586MMX is not set,CONFIG_586MMX=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_i686),y)
-	$(SED) 's,# CONFIG_686 is not set,CONFIG_686=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentiumpro),y)
-	$(SED) 's,# CONFIG_686 is not set,CONFIG_686=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium2),y)
-	$(SED) 's,# CONFIG_PENTIUMII is not set,CONFIG_PENTIUMII=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium3),y)
-	$(SED) 's,# CONFIG_PENTIUMIII is not set,CONFIG_PENTIUMIII=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium4),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium_m),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_nocona),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_core2),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-
-$(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
-	$(Q)$(call MESSAGE,"Configuring uClibc")
-	cp -f $(UCLIBC_DIR)/.oldconfig $(UCLIBC_DIR)/.config
-	mkdir -p $(STAGING_DIR)/usr/include
-	mkdir -p $(STAGING_DIR)/usr/lib
-	mkdir -p $(STAGING_DIR)/lib
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR) \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" \
-		oldconfig
-	touch $@
-
-ifeq ($(BR2_CCACHE),y)
-# we'll need ccache for the host built before make oldconfig
-# if configured, otherwise uclibc-menuconfig will fail.
-# Use order-only dependency as host-ccache is a virtual target
-$(UCLIBC_DIR)/.config: | host-ccache
-endif
-
-# For ARC, libgcc is always included, even when -nostdlib is given. This
-# is related to some small pieces of code that are not always generated
-# by the compiler; a call to libgcc is used in those cases instead.
-#
-# During the initial stages of building the toolchain, this is a problem,
-# as libgcc does not exist yet. The ARC compiler supports -really-nostdlib
-# to override the default behavior.
-ifeq ($(BR2_arc),y)
-REALLY_NOSTDLIB=-really-nostdlib
-endif
-
-$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.config
-	$(Q)$(call MESSAGE,"Installing uClibc headers")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR) \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" headers \
-		lib/crt1.o lib/crti.o lib/crtn.o \
-		install_headers
-	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
-	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so
-	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/
-	touch $@
-
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(HOST_GCC_INTERMEDIATE_TARGET_INSTALL_HOST)
-	$(Q)$(call MESSAGE,"Building uClibc")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX= \
-		DEVEL_PREFIX=/ \
-		RUNTIME_PREFIX=/ \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" \
-		all
-	touch -c $@
-
-uclibc-menuconfig: dirs $(UCLIBC_DIR)/.config
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR) \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" \
-		menuconfig && \
-	touch -c $(UCLIBC_DIR)/.config
-
-
-$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
-	$(Q)$(call MESSAGE,"Installing uClibc to staging dir")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=/ \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		install_runtime install_dev
-	# Build the host utils. Need to add an install target...
-	$(MAKE1) -C $(UCLIBC_DIR)/utils \
-		PREFIX=$(HOST_DIR) \
-		HOSTCC="$(HOSTCC)" \
-		hostutils
-	if [ -f $(UCLIBC_DIR)/utils/ldd.host ]; then \
-		install -D $(UCLIBC_DIR)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd; \
-		ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd; \
-	fi
-	if [ -f $(UCLIBC_DIR)/utils/ldconfig.host ]; then \
-		install -D $(UCLIBC_DIR)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig; \
-		ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
-	fi
-	touch -c $@
-
-ifneq ($(TARGET_DIR),)
-$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
-	$(Q)$(call MESSAGE,"Installing uClibc runtime to target dir")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TARGET_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=/ \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		install_runtime
-	touch -c $@
-
-$(TARGET_DIR)/usr/bin/ldd: $(cross_compiler)
-	$(Q)$(call MESSAGE,"Installing uClibc utils to target dir")
-	$(MAKE1) -C $(UCLIBC_DIR) CC=$(TARGET_CROSS)gcc \
-		CPP=$(TARGET_CROSS)cpp LD=$(TARGET_CROSS)ld \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TARGET_DIR) utils install_utils
-	touch -c $@
-
-ifneq ($(BR2_PREFER_STATIC_LIB),y)
-UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0
-endif
-
-ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
-UCLIBC_TARGETS+=uclibc-test
-endif
-endif
-
-uclibc: host-gcc-intermediate $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
-
-uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
-
-uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
-
-uclibc-config: $(UCLIBC_DIR)/.config
-
-uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
-
-uclibc-update-config: uclibc-config
-	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
-
-uclibc-configured: host-gcc-initial linux-headers $(UCLIBC_DIR)/.configured
-
-uclibc-configured-source: uclibc-source
-
-uclibc-clean: uclibc-test-clean
-	-$(MAKE1) -C $(UCLIBC_DIR) ARCH="$(UCLIBC_TARGET_ARCH)" clean
-	rm -f $(UCLIBC_DIR)/.config
-
-uclibc-dirclean: uclibc-test-dirclean
-	rm -rf $(UCLIBC_DIR)
-
-uclibc-target-utils: $(TARGET_DIR)/usr/bin/ldd
-
-uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)
-
-$(UCLIBC_DIR)/test/unistd/errno:
-	$(Q)$(call MESSAGE,"Building uClibc test suite")
-	$(MAKE) -C $(UCLIBC_DIR)/test \
-	ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \
-	UCLIBC_ONLY=1 TEST_INSTALLED_UCLIBC=1 compile
-
-$(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
-	$(Q)$(call MESSAGE,"Installing uClibc test suite to target dir")
-	mkdir -p $(TARGET_DIR)/root/uClibc
-	cp -rdpf $(UCLIBC_DIR)/test $(TARGET_DIR)/root/uClibc
-	$(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
-	$(INSTALL) $(UCLIBC_DIR)/.config $(TARGET_DIR)/root/uClibc
-
-uclibc-test: $(STAGING_DIR)/usr/lib/libc.a $(TARGET_DIR)/root/uClibc/test/unistd/errno
-
-uclibc-test-source: uclibc-source
-
-uclibc-test-clean:
-	-$(MAKE) -C $(UCLIBC_DIR)/test clean
-	rm -rf $(TARGET_DIR)/root/uClibc
-
-uclibc-test-dirclean:
-	rm -rf $(TARGET_DIR)/root/uClibc
-
-################################################################################
-#
-# uClibc for the target just needs its header files
-# and whatnot installed.
-#
-################################################################################
-
-$(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/usr/lib/libc.a
-	$(Q)$(call MESSAGE,"Installing uClibc development files to target dir")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TARGET_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=/ \
-		install_dev
-	# Install the kernel headers to the target dir if necessary
-	if [ ! -f $(TARGET_DIR)/usr/include/linux/version.h ]; then \
-		cp -pLR $(LINUX_HEADERS_DIR)/include/* \
-			$(TARGET_DIR)/usr/include/; \
-	fi
-	touch -c $@
-
-uclibc_target: cross_compiler uclibc $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
-
-uclibc_target-clean: uclibc-test-clean
-	rm -rf $(TARGET_DIR)/usr/include \
-		$(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
-
-uclibc_target-dirclean: uclibc-test-dirclean
-	rm -rf $(TARGET_DIR)/usr/include
-
-endif