summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-30 18:12:15 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-06-30 18:12:15 +0000
commit40b6fce4a15c12e548c0b4fbcff29d35dd2c9557 (patch)
treee9741f4053e435dcac945ef01c5cf1593029a8f6
parent97f0df7a84ca3d386738d1ec24c7e4913cc1b38e (diff)
toolchain: keep the initial gcc around for later uclibc rebuilds
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. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32553 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--toolchain/binutils/Makefile6
-rw-r--r--toolchain/gcc/initial/Makefile5
-rw-r--r--toolchain/uClibc/Makefile2
3 files changed, 10 insertions, 3 deletions
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 0022202d4..9d12721de 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -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
diff --git a/toolchain/gcc/initial/Makefile b/toolchain/gcc/initial/Makefile
index f3f78b0b2..3d8ab61cd 100644
--- a/toolchain/gcc/initial/Makefile
+++ b/toolchain/gcc/initial/Makefile
@@ -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))
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index 6e7e9ddd8..315e0446c 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -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=/ \