From 59b384dabe20a4930b1c8ff4e0f48367cc080662 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 30 Jun 2012 21:43:59 +0000
Subject: [PATCH] toolchain: fix up lib64 symlink to lib before copying the
 initial prefix dir to avoid errors on copying

SVN-Revision: 32556
---
 include/toolchain-build.mk     | 9 +++++++++
 toolchain/binutils/Makefile    | 1 +
 toolchain/gcc/initial/Makefile | 2 ++
 3 files changed, 12 insertions(+)

diff --git a/include/toolchain-build.mk b/include/toolchain-build.mk
index a0bc4061fcfc..d2fdb0281a10 100644
--- a/include/toolchain-build.mk
+++ b/include/toolchain-build.mk
@@ -16,3 +16,12 @@ TOOLCHAIN_JOBS?=$(if $(CONFIG_TOOLCHAIN_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS))
 include $(INCLUDE_DIR)/host-build.mk
 
 HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared
+
+define FixupLibdir
+	if [ -d $(1)/lib64 -a \! -L $(1)/lib64 ]; then \
+		mkdir -p $(1)/lib; \
+		mv $(1)/lib64/* $(1)/lib/; \
+		rm -rf $(1)/lib64; \
+	fi
+	ln -sf lib $(1)/lib64
+endef
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 9d12721dec4a..c7d21b1dcdfc 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -83,6 +83,7 @@ define Host/Install
 	$(MAKE) -C $(HOST_BUILD_DIR) \
 		prefix=$(TOOLCHAIN_DIR)/initial \
 		install
+	$(call FixupLibdir,$(TOOLCHAIN_DIR)/initial)
 	$(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 3d8ab61cdf01..6b0536d83a2c 100644
--- a/toolchain/gcc/initial/Makefile
+++ b/toolchain/gcc/initial/Makefile
@@ -29,6 +29,8 @@ define Host/Install
 		cp libgcc.a libgcc_initial.a; \
 	)
 
+	$(call FixupLibdir,$(TOOLCHAIN_DIR)/initial)
+
 	$(CP) $(TOOLCHAIN_DIR)/initial/. $(TOOLCHAIN_DIR)/
 endef
 
-- 
2.30.2