toolchain: sync eglibc headers/build split with uclibc changes
SVN-Revision: 32584
This commit is contained in:
		| @@ -28,9 +28,8 @@ | ||||
| curdir:=toolchain | ||||
|  | ||||
| # subdirectories to descend into | ||||
| $(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/minimal gcc/initial gcc/final $(LIBC)) | ||||
| $(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/minimal gcc/initial gcc/final $(LIBC)/headers $(LIBC)) | ||||
| ifdef CONFIG_USE_UCLIBC | ||||
|   $(curdir)/builddirs += $(LIBC)/headers | ||||
|   $(curdir)/builddirs += $(LIBC)/utils | ||||
| endif | ||||
| $(curdir)/builddirs-compile:=$($(curdir)/builddirs-prepare) | ||||
| @@ -43,7 +42,6 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) | ||||
|   $(curdir)/gcc/initial/prepare:=$(curdir)/gcc/minimal/prepare | ||||
|   $(curdir)/gcc/final/prepare:=$(curdir)/gcc/initial/prepare | ||||
|  | ||||
|   ifdef CONFIG_USE_UCLIBC | ||||
|   $(curdir)/$(LIBC)/headers/compile:=$(curdir)/kernel-headers/install | ||||
|   $(curdir)/gcc/initial/compile:=$(curdir)/$(LIBC)/headers/install | ||||
|   $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/install | ||||
| @@ -51,13 +49,6 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) | ||||
|   $(curdir)/$(LIBC)/utils/compile:=$(curdir)/gcc/final/install | ||||
|   $(curdir)/$(LIBC)/prepare:=$(curdir)/$(LIBC)/headers/prepare | ||||
|   $(curdir)/$(LIBC)/utils/prepare:=$(curdir)/$(LIBC)/headers/prepare | ||||
|   else | ||||
|     $(curdir)/$(LIBC)/prepare:=$(curdir)/kernel-headers/install | ||||
|     $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/install | ||||
|     $(curdir)/$(LIBC)/install:=$(curdir)/gcc/final/install | ||||
|     $(curdir)/gcc/initial/compile:=$(curdir)/$(LIBC)/prepare | ||||
|     $(curdir)/gcc/final/compile:=$(curdir)/$(LIBC)/compile | ||||
|   endif | ||||
| endif | ||||
|  | ||||
| ifdef CONFIG_GCC_VERSION_LLVM | ||||
|   | ||||
| @@ -1,122 +1,15 @@ | ||||
| # | ||||
| # Copyright (C) 2006-2011 OpenWrt.org | ||||
| # | ||||
| # This is free software, licensed under the GNU General Public License v2. | ||||
| # See /LICENSE for more information. | ||||
| # | ||||
| include $(TOPDIR)/rules.mk | ||||
| PATH_PREFIX := . | ||||
| VARIANT:=final | ||||
|  | ||||
| PKG_NAME:=eglibc | ||||
| PKG_VERSION:=$(call qstrip,$(CONFIG_EGLIBC_VERSION)) | ||||
| PKG_REVISION:=$(call qstrip,$(CONFIG_EGLIBC_REVISION)) | ||||
| include ./common.mk | ||||
|  | ||||
| PKG_SOURCE_PROTO:=svn | ||||
| PKG_SOURCE_VERSION:=$(PKG_REVISION) | ||||
| PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-r$(PKG_REVISION) | ||||
| PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2 | ||||
|  | ||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_13),) | ||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_13 | ||||
| endif | ||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_14),) | ||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_14 | ||||
| endif | ||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_15),) | ||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_15 | ||||
| endif | ||||
|  | ||||
| PATCH_DIR:=./patches/$(PKG_VERSION) | ||||
|  | ||||
| HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_SOURCE_SUBDIR) | ||||
|  | ||||
| include $(INCLUDE_DIR)/toolchain-build.mk | ||||
|  | ||||
| HOST_STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.eglibc_built | ||||
| HOST_STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.eglibc_installed | ||||
|  | ||||
| HOST_BUILD_DIR1:=$(HOST_BUILD_DIR)-initial | ||||
| HOST_BUILD_DIR2:=$(HOST_BUILD_DIR)-final | ||||
|  | ||||
| EGLIBC_CFLAGS:= \ | ||||
| 	$(TARGET_CFLAGS) | ||||
|  | ||||
| EGLIBC_CONFIGURE:= \ | ||||
| 	BUILD_CC="$(HOSTCC)" \ | ||||
| 	$(TARGET_CONFIGURE_OPTS) \ | ||||
| 	CFLAGS="$(EGLIBC_CFLAGS)" \ | ||||
| 	libc_cv_slibdir="/lib" \ | ||||
| 	use_ldconfig=no \ | ||||
| 	$(HOST_BUILD_DIR)/libc/configure \ | ||||
| 		--prefix= \ | ||||
| 		--build=$(GNU_HOST_NAME) \ | ||||
| 		--host=$(REAL_GNU_TARGET_NAME) \ | ||||
| 		--with-headers=$(TOOLCHAIN_DIR)/include \ | ||||
| 		--disable-profile \ | ||||
| 		--without-gd \ | ||||
| 		--without-cvs \ | ||||
| 		--enable-add-ons \ | ||||
|  | ||||
| ifeq ($(CONFIG_SOFT_FLOAT),) | ||||
|   EGLIBC_CONFIGURE+= \ | ||||
| 	--with-fp | ||||
| else | ||||
|   EGLIBC_CONFIGURE+= \ | ||||
| 	--without-fp | ||||
| endif | ||||
|  | ||||
| EGLIBC_MAKE:= \ | ||||
| 	$(MAKE) \ | ||||
|  | ||||
| export libc_cv_ssp=no | ||||
| export ac_cv_header_cpuid_h=yes | ||||
|  | ||||
| define Host/SetToolchainInfo | ||||
| 	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk | ||||
| 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.eglibc.org/,' $(TOOLCHAIN_DIR)/info.mk | ||||
| 	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||
| 	$(SED) 's,^\(LIBC_SO_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||
| define Host/Compile | ||||
| 	$(MAKE) -C $(CUR_BUILD_DIR) all | ||||
| endef | ||||
|  | ||||
| define Stage1/Configure | ||||
| 	mkdir -p $(HOST_BUILD_DIR1) | ||||
| 	$(CP) $(HOST_BUILD_DIR)/libc/option-groups.config $(HOST_BUILD_DIR1)/ | ||||
| 	( cd $(HOST_BUILD_DIR1); rm -f config.cache; \ | ||||
| 		$(EGLIBC_CONFIGURE) \ | ||||
| 	); | ||||
| endef | ||||
|  | ||||
| define Stage1/Compile | ||||
| endef | ||||
|  | ||||
| define Stage1/Install | ||||
| 	mkdir -p $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/{include,lib} | ||||
| 	$(EGLIBC_MAKE) -C $(HOST_BUILD_DIR1) \ | ||||
| 		install_root="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev" \ | ||||
| 		install-bootstrap-headers=yes \ | ||||
| 		install-headers  | ||||
| 	$(EGLIBC_MAKE) -C $(HOST_BUILD_DIR1) \ | ||||
| 		csu/subdir_lib | ||||
| 	( cd $(HOST_BUILD_DIR1); \ | ||||
| 		$(CP) csu/crt1.o csu/crti.o csu/crtn.o $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/lib/ \ | ||||
| 	) | ||||
| 	$(TARGET_CC) -nostdlib -nostartfiles -shared -x c /dev/null \ | ||||
| 		-o $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/lib/libc.so | ||||
| endef | ||||
|  | ||||
| define Stage2/Configure | ||||
| 	mkdir -p $(HOST_BUILD_DIR2) | ||||
| 	$(CP) $(HOST_BUILD_DIR)/libc/option-groups.config $(HOST_BUILD_DIR2)/ | ||||
| 	( cd $(HOST_BUILD_DIR2); rm -f config.cache; \ | ||||
| 		$(EGLIBC_CONFIGURE) \ | ||||
| 	); | ||||
| endef | ||||
|  | ||||
| define Stage2/Compile | ||||
| 	$(EGLIBC_MAKE) -C $(HOST_BUILD_DIR2) all | ||||
| endef | ||||
|  | ||||
| define Stage2/Install | ||||
| 	$(EGLIBC_MAKE) -C $(HOST_BUILD_DIR2) \ | ||||
| define Host/Install | ||||
| 	$(call Host/SetToolchainInfo) | ||||
| 	$(MAKE) -C $(CUR_BUILD_DIR) \ | ||||
| 		install_root="$(TOOLCHAIN_DIR)" \ | ||||
| 		install | ||||
| 	( cd $(TOOLCHAIN_DIR) ; \ | ||||
| @@ -130,35 +23,4 @@ define Stage2/Install | ||||
| 	) | ||||
| endef | ||||
|  | ||||
| define Host/Prepare | ||||
| 	$(call Host/SetToolchainInfo) | ||||
| 	$(call Host/Prepare/Default) | ||||
| 	ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||
| 	$(SED) 's,y,n,' $(HOST_BUILD_DIR)/libc/option-groups.defaults | ||||
| 	grep 'CONFIG_EGLIBC_OPTION_' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_EGLIBC_\\(.*\\),\\1\\2,g" > $(HOST_BUILD_DIR)/libc/option-groups.config | ||||
| 	ln -sf ../ports $(HOST_BUILD_DIR)/libc/ | ||||
| 	( cd $(HOST_BUILD_DIR)/libc; autoconf --force ) | ||||
| 	$(call Stage1/Configure) | ||||
| 	$(call Stage1/Compile) | ||||
| 	$(call Stage1/Install) | ||||
| endef | ||||
|  | ||||
| define Host/Configure | ||||
| endef | ||||
|  | ||||
| define Host/Compile | ||||
| 	$(call Stage2/Configure) | ||||
| 	$(call Stage2/Compile) | ||||
| 	$(call Stage2/Install) | ||||
| endef | ||||
|  | ||||
| define Host/Install | ||||
| endef | ||||
|  | ||||
| define Host/Clean | ||||
| 	rm -rf $(HOST_BUILD_DIR) $(HOST_BUILD_DIR1) $(HOST_BUILD_DIR2) \ | ||||
| 		$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev \ | ||||
| 		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||
| endef | ||||
|  | ||||
| $(eval $(call HostBuild)) | ||||
|   | ||||
							
								
								
									
										92
									
								
								toolchain/eglibc/common.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								toolchain/eglibc/common.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| # | ||||
| # Copyright (C) 2006-2011 OpenWrt.org | ||||
| # | ||||
| # This is free software, licensed under the GNU General Public License v2. | ||||
| # See /LICENSE for more information. | ||||
| # | ||||
| include $(TOPDIR)/rules.mk | ||||
|  | ||||
| PKG_NAME:=eglibc | ||||
| PKG_VERSION:=$(call qstrip,$(CONFIG_EGLIBC_VERSION)) | ||||
| PKG_REVISION:=$(call qstrip,$(CONFIG_EGLIBC_REVISION)) | ||||
|  | ||||
| PKG_SOURCE_PROTO:=svn | ||||
| PKG_SOURCE_VERSION:=$(PKG_REVISION) | ||||
| PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-r$(PKG_REVISION) | ||||
| PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.bz2 | ||||
|  | ||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_13),) | ||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_13 | ||||
| endif | ||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_14),) | ||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_14 | ||||
| endif | ||||
| ifneq ($(CONFIG_EGLIBC_VERSION_2_15),) | ||||
|   PKG_SOURCE_URL:=svn://svn.eglibc.org/branches/eglibc-2_15 | ||||
| endif | ||||
|  | ||||
| PATCH_DIR:=$(PATH_PREFIX)/patches/$(PKG_VERSION) | ||||
|  | ||||
| HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_SOURCE_SUBDIR) | ||||
| CUR_BUILD_DIR:=$(HOST_BUILD_DIR)-$(VARIANT) | ||||
|  | ||||
| include $(INCLUDE_DIR)/toolchain-build.mk | ||||
|  | ||||
| HOST_STAMP_PREPARED:=$(HOST_BUILD_DIR)/.prepared | ||||
| HOST_STAMP_CONFIGURED:=$(CUR_BUILD_DIR)/.configured | ||||
| HOST_STAMP_BUILT:=$(CUR_BUILD_DIR)/.built | ||||
| HOST_STAMP_INSTALLED:=$(TOOLCHAIN_DIR)/stamp/.eglibc_$(VARIANT)_installed | ||||
|  | ||||
|  | ||||
| EGLIBC_CONFIGURE:= \ | ||||
| 	BUILD_CC="$(HOSTCC)" \ | ||||
| 	$(TARGET_CONFIGURE_OPTS) \ | ||||
| 	CFLAGS="$(TARGET_CFLAGS)" \ | ||||
| 	libc_cv_slibdir="/lib" \ | ||||
| 	use_ldconfig=no \ | ||||
| 	$(HOST_BUILD_DIR)/libc/configure \ | ||||
| 		--prefix= \ | ||||
| 		--build=$(GNU_HOST_NAME) \ | ||||
| 		--host=$(REAL_GNU_TARGET_NAME) \ | ||||
| 		--with-headers=$(TOOLCHAIN_DIR)/include \ | ||||
| 		--disable-profile \ | ||||
| 		--without-gd \ | ||||
| 		--without-cvs \ | ||||
| 		--enable-add-ons \ | ||||
| 		--$(if $(CONFIG_SOFT_FLOAT),without,with)-fp | ||||
|  | ||||
| export libc_cv_ssp=no | ||||
| export ac_cv_header_cpuid_h=yes | ||||
|  | ||||
| define Host/SetToolchainInfo | ||||
| 	$(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk | ||||
| 	$(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.eglibc.org/,' $(TOOLCHAIN_DIR)/info.mk | ||||
| 	$(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||
| 	$(SED) 's,^\(LIBC_SO_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk | ||||
| endef | ||||
|  | ||||
| define Host/Configure | ||||
| 	[ -f $(HOST_BUILD_DIR)/.autoconf ] || { \ | ||||
| 		cd $(HOST_BUILD_DIR)/libc; \ | ||||
| 		autoconf --force && \ | ||||
| 		touch $(HOST_BUILD_DIR)/.autoconf; \ | ||||
| 	} | ||||
| 	mkdir -p $(CUR_BUILD_DIR) | ||||
| 	grep 'CONFIG_EGLIBC_OPTION_' $(TOPDIR)/.config | sed -e "s,\\(# \)\\?CONFIG_EGLIBC_\\(.*\\),\\1\\2,g" > $(CUR_BUILD_DIR)/option-groups.config | ||||
| 	( cd $(CUR_BUILD_DIR); rm -f config.cache; \ | ||||
| 		$(EGLIBC_CONFIGURE) \ | ||||
| 	); | ||||
| endef | ||||
|  | ||||
| define Host/Prepare | ||||
| 	$(call Host/Prepare/Default) | ||||
| 	ln -snf $(PKG_SOURCE_SUBDIR) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||
| 	$(SED) 's,y,n,' $(HOST_BUILD_DIR)/libc/option-groups.defaults | ||||
| 	ln -sf ../ports $(HOST_BUILD_DIR)/libc/ | ||||
| endef | ||||
|  | ||||
| define Host/Clean | ||||
| 	rm -rf $(CUR_BUILD_DIR)* \ | ||||
| 		$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev \ | ||||
| 		$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) | ||||
| endef | ||||
							
								
								
									
										26
									
								
								toolchain/eglibc/headers/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								toolchain/eglibc/headers/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| PATH_PREFIX:=.. | ||||
| VARIANT:=headers | ||||
|  | ||||
| include ../common.mk | ||||
|  | ||||
| define Host/Compile | ||||
|  | ||||
| endef | ||||
|  | ||||
| define Host/Install | ||||
| 	$(call Host/SetToolchainInfo) | ||||
| 	mkdir -p $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/{include,lib} | ||||
| 	$(MAKE) -C $(CUR_BUILD_DIR) \ | ||||
| 		install_root="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev" \ | ||||
| 		install-bootstrap-headers=yes \ | ||||
| 		install-headers | ||||
| 	$(MAKE) -C $(CUR_BUILD_DIR) \ | ||||
| 		csu/subdir_lib | ||||
| 	( cd $(CUR_BUILD_DIR); \ | ||||
| 		$(CP) csu/crt1.o csu/crti.o csu/crtn.o $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/lib/ \ | ||||
| 	) | ||||
| 	$(TARGET_CC) -nostdlib -nostartfiles -shared -x c /dev/null \ | ||||
| 		-o $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/lib/libc.so | ||||
| endef | ||||
|  | ||||
| $(eval $(call HostBuild)) | ||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau