Explorar o código

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 <hans-christian.egtvedt@atmel.com>
Hans-Christian Egtvedt %!s(int64=17) %!d(string=hai) anos
pai
achega
50b55c9006
Modificáronse 2 ficheiros con 10 adicións e 7 borrados
  1. 5 3
      toolchain/gcc/gcc-uclibc-3.x.mk
  2. 5 4
      toolchain/gcc/gcc-uclibc-4.x.mk

+ 5 - 3
toolchain/gcc/gcc-uclibc-3.x.mk

@@ -330,7 +330,7 @@ endif
 	mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
 	mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
 	touch $@
 	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)
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
 	# These are in /lib, so...
 	# These are in /lib, so...
 	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.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 \
 	cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \
 		$(TARGET_DIR)/usr/lib/security/
 		$(TARGET_DIR)/usr/lib/security/
 endif
 endif
+	mkdir -p $(@D)
 	touch $@
 	touch $@
 
 
 cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
 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_TARGETS)
 
 
 gcc-source: $(DL_DIR)/$(GCC_SOURCE)
 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:=$(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)
 	mkdir -p $(GCC_BUILD_DIR3)
 	touch $@
 	touch $@
 
 

+ 5 - 4
toolchain/gcc/gcc-uclibc-4.x.mk

@@ -359,7 +359,7 @@ endif
 	mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
 	mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
 	touch $@
 	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)
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
 	# These are in /lib, so...
 	# These are in /lib, so...
 	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.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 \
 	cp -dpf $(STAGING_DIR)/usr/lib/security/classpath.security \
 		$(TARGET_DIR)/usr/lib/security/
 		$(TARGET_DIR)/usr/lib/security/
 endif
 endif
+	mkdir -p $(@D)
 	touch $@
 	touch $@
 
 
 cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
 cross_compiler:=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc
 cross_compiler gcc: uclibc-configured binutils gcc_initial \
 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_TARGETS)
 
 
 gcc-source: $(DL_DIR)/$(GCC_SOURCE)
 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:=$(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)
 	mkdir -p $(GCC_BUILD_DIR3)
 	touch $@
 	touch $@