aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-06-30 18:12:15 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-06-30 18:12:15 +0000
commit488f47237e196cfe24bbeee4c237db19d304e7f8 (patch)
treee9741f4053e435dcac945ef01c5cf1593029a8f6 /toolchain
parent477607f2e14d11f7afd1616ef508e68a3af35ef3 (diff)
downloadupstream-488f47237e196cfe24bbeee4c237db19d304e7f8.tar.gz
upstream-488f47237e196cfe24bbeee4c237db19d304e7f8.tar.bz2
upstream-488f47237e196cfe24bbeee4c237db19d304e7f8.zip
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
Diffstat (limited to 'toolchain')
-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 0022202d4b..9d12721dec 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 f3f78b0b2f..3d8ab61cdf 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 6e7e9ddd8b..315e0446ca 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=/ \