--- include/host-build.mk | 1 + package/base-files/Makefile | 2 +- package/kexec-tools/Makefile | 2 +- rules.mk | 4 ++-- toolchain/Config.in | 13 +++++++++++++ toolchain/Config.version | 15 +++++++++++++++ toolchain/Makefile | 4 ++++ toolchain/binutils/Makefile | 2 +- toolchain/gcc/Makefile | 8 ++++++-- toolchain/uClibc/Config.in | 4 ++-- toolchain/uClibc/Makefile | 2 +- 11 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 toolchain/Config.version
diff --git a/include/host-build.mk b/include/host-build.mk index 8a8d6de..7b3356d 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -82,6 +82,7 @@ define Download/default FILE:=$(PKG_SOURCE) URL:=$(PKG_SOURCE_URL) PROTO:=$(PKG_SOURCE_PROTO) + SUBDIR:=$(PKG_SOURCE_SUBDIR) VERSION:=$(PKG_SOURCE_VERSION) MD5SUM:=$(PKG_MD5SUM) endef diff --git a/package/base-files/Makefile b/package/base-files/Makefile index bec33c8..17422c4 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -88,7 +88,7 @@ endef define Package/uclibc/Default SECTION:=libs CATEGORY:=Base system - DEPENDS:[EMAIL PROTECTED] + DEPENDS:[EMAIL PROTECTED]&&@USE_UCLIBC URL:=http://uclibc.org/ VERSION:=$(UCLIBC_VERSION)$(UCLIBC_PATCHVER)-$(PKG_RELEASE) endef diff --git a/package/kexec-tools/Makefile b/package/kexec-tools/Makefile index 951d41a..34def60 100644 --- a/package/kexec-tools/Makefile +++ b/package/kexec-tools/Makefile @@ -37,7 +37,7 @@ define Package/kexec-tools/config endef CONFIGURE_ARGS = \ - --target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-uclibc \ + --target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-$(CONFIG_TARGET_SUFFIX) \ --host=$(GNU_TARGET_NAME)-uclibc \ --build=$(GNU_HOST_NAME) \ --program-prefix="" \ diff --git a/rules.mk b/rules.mk index 7153a04..a86d8f5 100644 --- a/rules.mk +++ b/rules.mk @@ -57,9 +57,9 @@ IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) -include $(TOOLCHAIN_DIR)/info.mk - REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if $(CONFIG_EABI_SUPPORT),gnueabi) + REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-$(CONFIG_TARGET_SUFFIX)$(if $(CONFIG_EABI_SUPPORT),gnueabi) GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux - TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if $(CONFIG_EABI_SUPPORT),gnueabi)-) + TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-linux-$(CONFIG_TARGET_SUFFIX)$(if $(CONFIG_EABI_SUPPORT),gnueabi)-) endif TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH) diff --git a/toolchain/Config.in b/toolchain/Config.in index 1a465f5..6ecddf4 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -41,6 +41,18 @@ menuconfig EXTRA_TARGET_ARCH source "toolchain/binutils/Config.in" source "toolchain/gcc/Config.in" + +choice + prompt "LIBC implementation" if TOOLCHAINOPTS + default USE_UCLIBC + help + Select the LIBC implementation between uClibc and... uClibc. + + config USE_UCLIBC + bool "Use uClibC" +endchoice + + source "toolchain/uClibc/Config.in" config GDB @@ -92,3 +104,4 @@ config TARGET_OPTIMIZATION source "toolchain/gcc/Config.version" source "toolchain/uClibc/Config.version" +source "toolchain/Config.version" diff --git a/toolchain/Config.version b/toolchain/Config.version new file mode 100644 index 0000000..19d3eab --- /dev/null +++ b/toolchain/Config.version @@ -0,0 +1,15 @@ +config USE_UCLIBC + bool + default y if !TOOLCHAINOPTS + +config TARGET_SUFFIX + string + default "uclibc" if USE_UCLIBC + default "gnu" if USE_EGLIBC || USE_GLIBC + default "uclibc" + +config LIBC_IMPLEMENTATION + string + default "UCLIBC" if USE_UCLIBC + default "EGLIBC" if USE_EGLIBC + default "GLIBC" if USE_GLIBC diff --git a/toolchain/Makefile b/toolchain/Makefile index 4afcc43..8d0f91b 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -9,11 +9,14 @@ curdir:=toolchain # subdirectories to descend into +ifeq ($(CONFIG_USE_UCLIBC),y) $(curdir)/builddirs := kernel-headers $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_NATIVE_TOOLCHAIN),,binutils gcc uClibc) +endif $(curdir)/builddirs-compile:=. $(filter-out kernel-headers,$($(curdir)/builddirs)) $(curdir)/builddirs-install:=$($(curdir)/builddirs-compile) # builddir dependencies +ifeq ($(CONFIG_USE_UCLIBC),y) $(curdir)/uClibc/prepare:=$(curdir)/kernel-headers/prepare ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) $(curdir)/binutils/prepare:=$(curdir)/uClibc/prepare @@ -22,6 +25,7 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) $(curdir)/gcc/install:=$(curdir)/uClibc/compile $(curdir)/uClibc/install:=$(curdir)/gcc/install endif +endif ifneq ($(ARCH),) $(TOOLCHAIN_DIR)/info.mk: .config diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile index 8682fa5..e44d2b4 100644 --- a/toolchain/binutils/Makefile +++ b/toolchain/binutils/Makefile @@ -24,7 +24,7 @@ BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) include $(INCLUDE_DIR)/host-build.mk -EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc) +EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(CONFIG_TARGET_SUFFIX)) define Build/Configure $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index ef5ab22..0b27592 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -40,7 +40,11 @@ BUILD_DIR2:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-final SEP:=, TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)" -EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc) +EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(CONFIG_TARGET_SUFFIX)) + +ifeq ($(CONFIG_USE_UCLIBC),y) +GCC_SYSROOT=$(BUILD_DIR_HOST)/uClibc_dev/ +endif define Stage1/Configure $(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' $(TOOLCHAIN_DIR)/info.mk @@ -55,7 +59,7 @@ define Stage1/Configure --target=$(REAL_GNU_TARGET_NAME) \ --enable-languages=c \ --disable-shared \ - --with-sysroot=$(BUILD_DIR_HOST)/uClibc_dev/ \ + --with-sysroot=$(GCC_SYSROOT) \ --disable-__cxa_atexit \ --enable-target-optspace \ --with-gnu-ld \ diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in index 6c89fd2..cb48dc0 100644 --- a/toolchain/uClibc/Config.in +++ b/toolchain/uClibc/Config.in @@ -1,7 +1,7 @@ # Choose uclibc version. choice - prompt "uClibc Version" if TOOLCHAINOPTS + prompt "uClibc Version" if TOOLCHAINOPTS && USE_UCLIBC default UCLIBC_VERSION_0_9_29 help Select the version of uClibc you wish to use. @@ -20,7 +20,7 @@ endchoice config UCLIBC_EXTRA_VERSION string - prompt "Extra uClibc version" if TOOLCHAINOPTS + prompt "Extra uClibc version" if TOOLCHAINOPTS && USE_UCLIBC default "snapshot" if UCLIBC_VERSION_SNAPSHOT default ".2" if UCLIBC_VERSION_0_9_28 default "" diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile index e6f2b7b..5154ab6 100644 --- a/toolchain/uClibc/Makefile +++ b/toolchain/uClibc/Makefile @@ -50,7 +50,7 @@ STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.uclibc_installed STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.uclibc-utils_installed UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ - -e 's/i.86/i386/' \ + -e 's/i.86/x86/' \ -e 's/sparc.*/sparc/' \ -e 's/arm.*/arm/g' \ -e 's/avr32.*/avr32/g' \ -- 1.5.4.3 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel