From c89a30c2ce2c40b5fdbb84a543857c4b5cdb7567 Mon Sep 17 00:00:00 2001 From: Abdoulaye Walsimou Gaye Date: Sat, 16 May 2009 00:53:20 +0200 Subject: Toolchain: Introduction of eglibc headers install and gcc second stage build and install Signed-off-by: Abdoulaye Walsimou Gaye --- mk/eglibc.mk | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ mk/gcc.mk | 8 ++++---- mk/toolchain.mk | 6 +++++- 3 files changed, 62 insertions(+), 5 deletions(-) (limited to 'mk') diff --git a/mk/eglibc.mk b/mk/eglibc.mk index 3e10924..5d2d45e 100644 --- a/mk/eglibc.mk +++ b/mk/eglibc.mk @@ -21,3 +21,56 @@ # \author GAYE Abdoulaye Walsimou, # \date May 2009 ######################################################################################### +EGLIBC_VERSION := $(subst ",,$(strip $(CONFIG_EMBTK_EGLIBC_VERSION_STRING))) +EGLIBC_SITE := http://www.eglibc.org +EGLIBC_PACKAGE := eglibc-$(EGLIBC_VERSION).tar.bz2 +EGLIBC_HEADERS_BUILD_DIR := $(TOOLS_BUILD)/eglibc-headers +EGLIBC_BUILD_DIR := $(TOOLS_BUILD)/eglibc + +#Hard or soft floating point +ifeq ($(CONFIG_EMBTK_SOFTFLOAT),y) +EGLIBC_FLOAT_TYPE := "--with-fp=no" +else +EGLIBC_FLOAT_TYPE := "--with-fp=yes" +endif + +eglibc-headers_install: $(EGLIBC_HEADERS_BUILD_DIR)/.installed + +$(EGLIBC_HEADERS_BUILD_DIR)/.installed: eglibc_download $(EGLIBC_HEADERS_BUILD_DIR)/.decompressed \ + $(EGLIBC_HEADERS_BUILD_DIR)/.configured + $(call INSTALL_MESSAGE,"headers eglibc-$(EGLIBC_VERSION)") + $(MAKE) -C $(EGLIBC_HEADERS_BUILD_DIR) install-headers install_root=$(SYSROOT) \ + install-bootstrap-headers=yes && \ + $(MAKE) -C $(EGLIBC_HEADERS_BUILD_DIR) csu/subdir_lib + @cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crt1.o $(SYSROOT)/usr/lib/ + @cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crti.o $(SYSROOT)/usr/lib/ + @cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crtn.o $(SYSROOT)/usr/lib/ + $(TOOLS)/bin/$(GNU_TARGET)-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o \ + $(SYSROOT)/usr/lib/libc.so + @touch $@ + +eglibc_download: + @echo "downloading eglibc" + +$(EGLIBC_HEADERS_BUILD_DIR)/.decompressed: + $(call DECOMPRESS_MESSAGE,$(EGLIBC_PACKAGE)) + @tar -C $(TOOLS_BUILD) -xjf $(DOWNLOAD_DIR)/$(EGLIBC_PACKAGE) + @cp -R $(TOOLS_BUILD)/eglibc-$(EGLIBC_VERSION)/ports \ + $(TOOLS_BUILD)/eglibc-$(EGLIBC_VERSION)/libc/ + @mkdir -p $(EGLIBC_HEADERS_BUILD_DIR) + @mkdir -p $(EGLIBC_BUILD_DIR) + @touch $@ + +$(EGLIBC_HEADERS_BUILD_DIR)/.configured: + $(call CONFIGURE_MESSAGE,eglibc-$(EGLIBC_VERSION)) + @cd $(EGLIBC_HEADERS_BUILD_DIR); BUILD_CC=gcc \ + CC=$(TOOLS)/bin/$(GNU_TARGET)-gcc \ + CXX=$(TOOLS)/bin/$(GNU_TARGET)-g++ \ + AR=$(TOOLS)/bin/$(GNU_TARGET)-ar \ + RANLIB=$(TOOLS)/bin/$(GNU_TARGET)-ranlib \ + $(TOOLS_BUILD)/eglibc-$(EGLIBC_VERSION)/libc/configure --prefix=/usr \ + --with-headers=$(SYSROOT)/usr/include \ + --host=$(GNU_TARGET) --build=$(HOST_BUILD) $(EGLIBC_FLOAT_TYPE) --disable-nls \ + --disable-profile --without-gd --without-cvs --enable-add-ons + @touch $@ + diff --git a/mk/gcc.mk b/mk/gcc.mk index b1bcd83..d8489a3 100644 --- a/mk/gcc.mk +++ b/mk/gcc.mk @@ -31,9 +31,9 @@ GCC3_BUILD_DIR := $(TOOLS_BUILD)/gcc3 #Hard or soft floating point ifeq ($(CONFIG_EMBTK_SOFTFLOAT),y) -FLOAT_TYPE := soft +GCC_FLOAT_TYPE := soft else -FLOAT_TYPE := hard +GCC_FLOAT_TYPE := hard endif gcc1_install: $(GCC1_BUILD_DIR)/.built @@ -60,7 +60,7 @@ $(GCC1_BUILD_DIR)/.configured: $(call CONFIGURE_MESSAGE,gcc-$(GCC_VERSION)) @cd $(GCC1_BUILD_DIR); $(TOOLS_BUILD)/gcc-$(GCC_VERSION)/configure \ --prefix=$(TOOLS) --with-sysroot=$(SYSROOT) --target=$(GNU_TARGET) \ - --with-arch=$(GNU_TARGET_ARCH) --with-float=$(FLOAT_TYPE) \ + --with-arch=$(GNU_TARGET_ARCH) --with-float=$(GCC_FLOAT_TYPE) \ --host=$(HOST_ARCH) --build=$(HOST_BUILD) \ --without-headers --with-newlib --disable-shared --disable-threads \ --disable-libssp --disable-libgomp --disable-libmudflap --disable-nls \ @@ -78,7 +78,7 @@ $(GCC2_BUILD_DIR)/.configured: @mkdir -p $(GCC2_BUILD_DIR) @cd $(GCC2_BUILD_DIR); $(TOOLS_BUILD)/gcc-$(GCC_VERSION)/configure \ --prefix=$(TOOLS) --with-sysroot=$(SYSROOT) --target=$(GNU_TARGET) \ - --with-arch=$(GNU_TARGET_ARCH) --with-float=$(FLOAT_TYPE) \ + --with-arch=$(GNU_TARGET_ARCH) --with-float=$(GCC_FLOAT_TYPE) \ --host=$(HOST_ARCH) --build=$(HOST_BUILD) \ --disable-libssp --disable-libgomp --disable-libmudflap \ --enable-languages=c --with-gmp=$(GMP_HOST_DIR) \ diff --git a/mk/toolchain.mk b/mk/toolchain.mk index 4bae83f..150c029 100644 --- a/mk/toolchain.mk +++ b/mk/toolchain.mk @@ -37,6 +37,10 @@ include $(EMBTK_ROOT)/mk/gcc.mk #linux kernel headers include $(EMBTK_ROOT)/mk/kernel-headers.mk +#EGLIBC +include $(EMBTK_ROOT)/mk/eglibc.mk + #targets -buildtoolchain: gmphost_install mpfrhost_install binutils_install gcc1_install +buildtoolchain: gmphost_install mpfrhost_install binutils_install gcc1_install \ + eglibc-headers_install gcc2_install -- cgit v1.2.3