toolchain/gcc: parallelize make install
[openwrt/staging/yousong.git] / toolchain / gcc / final / Makefile
index 59a5b2497c12201ea4acd5d125e3fde38fb71fe8..b815f677d669c8cac479d365f52449f64564637c 100644 (file)
@@ -4,23 +4,16 @@ include ../common.mk
 
 GCC_CONFIGURE += \
        --with-headers=$(TOOLCHAIN_DIR)/include \
+       --disable-libsanitizer \
        --enable-languages=$(TARGET_LANGUAGES) \
        --enable-shared \
        --enable-threads \
-       --with-slibdir=$(TOOLCHAIN_DIR)/lib
-
-ifneq ($(CONFIG_GCC_VERSION_4_5)$(CONFIG_GCC_VERSION_4_6),)
-  GCC_CONFIGURE += \
+       --with-slibdir=$(TOOLCHAIN_DIR)/lib \
        --enable-lto \
        --with-libelf=$(TOPDIR)/staging_dir/host
-endif
 
-ifneq ($(CONFIG_TLS_SUPPORT),)
-  GCC_CONFIGURE += \
-       --enable-tls
-else
-  GCC_CONFIGURE += \
-       --disable-tls
+ifdef CONFIG_USE_MUSL
+  GCC_MAKE += gcc_cv_libc_provides_ssp=yes
 endif
 
 ifneq ($(CONFIG_SJLJ_EXCEPTIONS),)
@@ -35,7 +28,7 @@ define CleanupToolchain
        ln -sf ../include $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include
        rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib
        ln -sf ../lib $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib
-       $(if $(CONFIG_mips64)$(CONFIG_mips64el)$(CONFIG_x86_64),ln -sf ../lib64 $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib64)
+       $(if $(CONFIG_ARCH_64BIT),ln -sf ../lib64 $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib64)
 endef
 
 define Host/Configure
@@ -46,8 +39,17 @@ define Host/Configure
        );
 endef
 
+ifeq ($(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yy)
+define FixGogccCrt
+       # link crtX.o for gotools
+       mkdir -p $(GCC_BUILD_DIR)/gotools
+       $(foreach crt, i 1 n, ln -sf ../../glibc-dev/lib/crt$(crt).o $(GCC_BUILD_DIR)/gotools/ ; )
+endef
+endif
+
 define Host/Compile
-       $(GCC_MAKE) -C $(GCC_BUILD_DIR) all
+       $(FixGogccCrt)
+       +$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all
 endef
 
 define SetupExtraArch
@@ -65,7 +67,7 @@ endef
 
 define Host/Install
        $(CleanupToolchain)
-       $(_SINGLE)$(GCC_MAKE) -C $(GCC_BUILD_DIR) install
+       +$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) install
        # Set up the symlinks to enable lying about target name.
        set -e; \
        (cd $(TOOLCHAIN_DIR); \
@@ -77,6 +79,7 @@ define Host/Install
                done; \
        );
        $(if $(CONFIG_EXTRA_TARGET_ARCH),$(call SetupExtraArch))
+       $(RM) $(TOOLCHAIN_DIR)/lib/libiberty.a
        $(SCRIPT_DIR)/patch-specs.sh "$(TOOLCHAIN_DIR)"
 endef