toolchain: keep the initial gcc around for later uclibc rebuilds
authorFelix Fietkau <nbd@openwrt.org>
Sat, 30 Jun 2012 18:12:15 +0000 (18:12 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 30 Jun 2012 18:12:15 +0000 (18:12 +0000)
testing uclibc changes is tricky because the final gcc tends to miscompile
uclibc code or barf up internal compiler errors.
install binutils into $(TOOLCHAIN_DIR)/initial (without changing the configure
prefix) and copy it from there to $(TOOLCHAIN_DIR)/ so that the initial gcc
can be put into $(PATH) for the uclibc build, even if the final gcc
is already installed.

SVN-Revision: 32553

toolchain/binutils/Makefile
toolchain/gcc/initial/Makefile
toolchain/uClibc/Makefile

index 0022202..9d12721 100644 (file)
@@ -79,7 +79,11 @@ define Host/Compile
 endef
 
 define Host/Install
-       $(MAKE) -C $(HOST_BUILD_DIR) install
+       mkdir -p $(TOOLCHAIN_DIR)/initial
+       $(MAKE) -C $(HOST_BUILD_DIR) \
+               prefix=$(TOOLCHAIN_DIR)/initial \
+               install
+       $(CP) $(TOOLCHAIN_DIR)/initial/. $(TOOLCHAIN_DIR)/
        $(CP) $(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-readelf $(REAL_STAGING_DIR_HOST)/bin/readelf
 endef
 
index f3f78b0..3d8ab61 100644 (file)
@@ -19,14 +19,17 @@ endef
 
 define Host/Install
        $(GCC_MAKE) -C $(GCC_BUILD_DIR) \
+               prefix="$(TOOLCHAIN_DIR)/initial" \
                install-gcc \
                $(if $(GCC_BUILD_TARGET_LIBGCC),install-target-libgcc)
 
        # XXX: glibc insists on linking against libgcc_eh
-       ( cd $(TOOLCHAIN_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) ; \
+       ( cd $(TOOLCHAIN_DIR)/initial/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) ; \
                [ -e libgcc_eh.a ] || ln -sf libgcc.a libgcc_eh.a ; \
                cp libgcc.a libgcc_initial.a; \
        )
+
+       $(CP) $(TOOLCHAIN_DIR)/initial/. $(TOOLCHAIN_DIR)/
 endef
 
 $(eval $(call HostBuild))
index 6e7e9dd..315e044 100644 (file)
@@ -93,7 +93,7 @@ CPU_CFLAGS = \
        --std=gnu99 -ffunction-sections -fdata-sections \
        $(TARGET_CFLAGS)
 
-UCLIBC_MAKE = PATH='$(TARGET_PATH)' $(MAKE) -C $(HOST_BUILD_DIR) \
+UCLIBC_MAKE = PATH='$(TOOLCHAIN_DIR)/initial/bin:$(TARGET_PATH)' $(MAKE) -C $(HOST_BUILD_DIR) \
        $(TARGET_CONFIGURE_OPTS) \
        DEVEL_PREFIX=/ \
        RUNTIME_PREFIX=/ \