From 50b55c90065949a274653914612065a59b6e5189 Mon Sep 17 00:00:00 2001 From: Hans-Christian Egtvedt Date: Thu, 2 Oct 2008 15:02:38 +0000 Subject: [PATCH] gcc: make installation of shared libraries multi-project safe This patch modifies the rule for installing the shared libraries into the project_foo/.../autotools-stamps directory. This will make the installation of GCC shared libraries be multi-project safe. Signed-off-by: Hans-Christian Egtvedt --- toolchain/gcc/gcc-uclibc-3.x.mk | 8 +++++--- toolchain/gcc/gcc-uclibc-4.x.mk | 9 +++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/toolchain/gcc/gcc-uclibc-3.x.mk b/toolchain/gcc/gcc-uclibc-3.x.mk index 2c2b192c5e..3a8d9d3bb3 100644 --- a/toolchain/gcc/gcc-uclibc-3.x.mk +++ b/toolchain/gcc/gcc-uclibc-3.x.mk @@ -330,7 +330,7 @@ endif mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin touch $@ -$(GCC_BUILD_DIR2)/.libs_installed: $(GCC_BUILD_DIR2)/.installed +$(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed ifeq ($(BR2_GCC_SHARED_LIBGCC),y) # These are in /lib, so... rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so* @@ -355,10 +355,12 @@ ifeq ($(BR2_INSTALL_LIBGCJ),y) cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \ $(TARGET_DIR)/usr/lib/security/ endif + mkdir -p $(@D) touch $@ cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc -cross_compiler gcc: gcc-config $(GCC_BUILD_DIR2)/.installed $(GCC_BUILD_DIR2)/.libs_installed \ +cross_compiler gcc: gcc-config $(GCC_BUILD_DIR2)/.installed \ + $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed \ $(GCC_TARGETS) gcc-source: $(DL_DIR)/$(GCC_SOURCE) @@ -383,7 +385,7 @@ gcc-dirclean: gcc_initial-dirclean ############################################################# GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target -$(GCC_BUILD_DIR3)/.prepared: $(GCC_BUILD_DIR2)/.libs_installed $(GCC_TARGET_PREREQ) +$(GCC_BUILD_DIR3)/.prepared: $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed $(GCC_TARGET_PREREQ) mkdir -p $(GCC_BUILD_DIR3) touch $@ diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk index 668e9fc1fc..08e5ed6c87 100644 --- a/toolchain/gcc/gcc-uclibc-4.x.mk +++ b/toolchain/gcc/gcc-uclibc-4.x.mk @@ -359,7 +359,7 @@ endif mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin touch $@ -$(GCC_BUILD_DIR2)/.libs_installed: $(GCC_BUILD_DIR2)/.installed +$(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed ifeq ($(BR2_GCC_SHARED_LIBGCC),y) # These are in /lib, so... rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so* @@ -385,12 +385,13 @@ ifeq ($(BR2_INSTALL_LIBGCJ),y) cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \ $(TARGET_DIR)/usr/lib/security/ endif + mkdir -p $(@D) touch $@ cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc cross_compiler gcc: uclibc-configured binutils gcc_initial \ - $(LIBFLOAT_TARGET) uclibc \ - $(GCC_BUILD_DIR2)/.installed $(GCC_BUILD_DIR2)/.libs_installed \ + $(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR2)/.installed \ + $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed \ $(GCC_TARGETS) gcc-source: $(DL_DIR)/$(GCC_SOURCE) @@ -412,7 +413,7 @@ gcc-dirclean: gcc_initial-dirclean ############################################################# GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target -$(GCC_BUILD_DIR3)/.prepared: $(GCC_BUILD_DIR2)/.libs_installed $(GCC_TARGET_PREREQ) +$(GCC_BUILD_DIR3)/.prepared: $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed $(GCC_TARGET_PREREQ) mkdir -p $(GCC_BUILD_DIR3) touch $@ -- 2.30.2