X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/955e03f23ad5f2e8b61b256a7147a9f403583381..293ad9c61ec69dab1eafa98b2c35c62fc15ccefc:/toolchain/gcc/Makefile diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 41a77bbd4..e76b60b0b 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -20,15 +20,15 @@ include $(TOPDIR)/rules.mk -GCC_VERSION:=$(strip $(GCC_VERSION)) +GCC_VERSION:=$(strip $(subst ",, $(CONFIG_GCC_VERSION)))#")) #GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/releases/gcc-$(GCC_VERSION) -GCC_SITE:=http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-$(GCC_VERSION) +GCC_SITE:=ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-$(GCC_VERSION) \ + http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-$(GCC_VERSION) GCC_SOURCE:=gcc-$(GCC_VERSION).tar.bz2 GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION) GCC_CAT:=bzcat -GCC_STRIP_HOST_BINARIES:=true ############################################################# # @@ -36,10 +36,10 @@ GCC_STRIP_HOST_BINARIES:=true # ############################################################# -ifeq ($(BR2_INSTALL_LIBGCJ),y) +ifeq ($(CONFIG_INSTALL_LIBGCJ),y) TARGET_LANGUAGES:=c,c++,java else -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) +ifeq ($(CONFIG_INSTALL_LIBSTDCPP),y) TARGET_LANGUAGES:=c,c++ else TARGET_LANGUAGES:=c @@ -70,14 +70,8 @@ $(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked # We can dispense with the custom spec files, as well as libfloat for the arm case. # However, we still need a patch for arm. There's a similar patch for gcc 3.3.x # which needs to be integrated so we can kill of libfloat for good. -ifeq ($(BR2_SOFT_FLOAT),y) -ifeq ("$(strip $(ARCH))","arm") - $(SCRIPT_DIR)/patch-kernel.sh $(GCC_DIR) ./$(GCC_VERSION) arm-softfloat.patch.conditional -endif -ifeq ("$(strip $(ARCH))","armeb") - $(SCRIPT_DIR)/patch-kernel.sh $(GCC_DIR) ./$(GCC_VERSION) arm-softfloat.patch.conditional -endif -endif + $(SED) 's,\(version_string.. = "[0-9\.]*\).*\(";\),\1 (OpenWrt-2.0)\2,' $(GCC_DIR)/gcc/version.c + $(SED) 's,\(bug_report_url.. = "\).*\(";\),\1\2,' $(GCC_DIR)/gcc/version.c touch $(GCC_DIR)/.patched # The --without-headers option stopped working with gcc 3.0 and has never been @@ -86,7 +80,7 @@ endif $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched mkdir -p $(GCC_BUILD_DIR1) - (cd $(GCC_BUILD_DIR1); PATH=$(TARGET_PATH) \ + (cd $(GCC_BUILD_DIR1); rm -f config.cache; PATH=$(TARGET_PATH) \ $(GCC_DIR)/configure \ --prefix=$(STAGING_DIR) \ --build=$(GNU_HOST_NAME) \ @@ -100,9 +94,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched --with-gnu-ld \ $(DISABLE_NLS) \ $(MULTILIB) \ - $(SOFT_FLOAT_CONFIG_OPTION) \ - $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ - $(EXTRA_GCC_CONFIG_OPTIONS)); + ); touch $(GCC_BUILD_DIR1)/.configured $(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured @@ -133,7 +125,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/lib/libc.a ln -sf ../include $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include rm -rf $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib ln -sf ../lib $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib - (cd $(GCC_BUILD_DIR2); PATH=$(TARGET_PATH) \ + (cd $(GCC_BUILD_DIR2); rm -f config.cache; PATH=$(TARGET_PATH) \ $(GCC_DIR)/configure \ --prefix=$(STAGING_DIR) \ --build=$(GNU_HOST_NAME) \ @@ -146,17 +138,14 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/lib/libc.a --with-gnu-ld \ $(DISABLE_NLS) \ $(MULTILIB) \ - $(SOFT_FLOAT_CONFIG_OPTION) \ - $(GCC_WITH_CPU) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) \ - $(GCC_USE_SJLJ_EXCEPTIONS) \ - $(EXTRA_GCC_CONFIG_OPTIONS)); + ); touch $(GCC_BUILD_DIR2)/.configured $(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) all touch $(GCC_BUILD_DIR2)/.compiled -gcc-install: $(GCC_BUILD_DIR2)/.compiled +gcc-install: $(GCC_BUILD_DIR2)/.compiled FORCE PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR2) install echo $(GCC_VERSION) > $(STAGING_DIR)/gcc_version # Set up the symlinks to enable lying about target name. @@ -169,24 +158,6 @@ gcc-install: $(GCC_BUILD_DIR2)/.compiled $(GNU_TARGET_NAME)$${app##$(REAL_GNU_TARGET_NAME)}; \ done; \ ); - # - # Now for the ugly 3.3.x soft float hack... - # -ifeq ($(BR2_SOFT_FLOAT),y) -ifeq ($(findstring 3.3.,$(GCC_VERSION)),3.3.) - # Make sure we have a soft float specs file for this arch - if [ ! -f ./$(GCC_VERSION)/specs-$(ARCH)-soft-float ] ; then \ - echo soft float configured but no specs file for this arch ; \ - /bin/false ; \ - fi; - # Replace specs file with one that defaults to soft float mode. - if [ ! -f $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ - echo staging dir specs file is missing ; \ - /bin/false ; \ - fi; - cp ./$(GCC_VERSION)/specs-$(ARCH)-soft-float $(STAGING_DIR)/lib/gcc-lib/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs -endif -endif source: $(DL_DIR)/$(GCC_SOURCE) prepare: $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc