diff options
| -rw-r--r-- | Config.in | 18 | ||||
| -rw-r--r-- | include/toolchain-build.mk | 2 | ||||
| -rw-r--r-- | toolchain/binutils/Makefile | 2 | ||||
| -rw-r--r-- | toolchain/gcc/common.mk | 2 | ||||
| -rw-r--r-- | toolchain/uClibc/Makefile | 2 | 
5 files changed, 21 insertions, 5 deletions
| @@ -268,7 +268,7 @@ menu "Global build settings"  	config PKG_DEFAULT_PARALLEL  		bool -		prompt "Always parallelize the default package build rule (Dangerous)" +		prompt "Parallelize the default package build rule (May break build)"  		depends on PKG_BUILD_PARALLEL  		default n  		help @@ -278,7 +278,21 @@ menu "Global build settings"  		  packages with multiple jobs that are probably not tested in  		  a parallel build environment. -		  Say N. Only say Y for testing. +		  Only say Y, if you don't mind fixing broken packages. +		  Before reporting build bugs, set this to N and re-run the build. + +	config TOOLCHAIN_PARALLEL +		bool +		prompt "Parallelize the toolchain build (May break build)" +		depends on PKG_BUILD_PARALLEL +		default n +		help +		  Build the toolchain with parallel make jobs. +		  This speeds up the toolchain build on SMP machines, but may +		  break the build for certain toolchain versions. + +		  If you say Y, toolchain build might break. +		  Before reporting build bugs, set this to N and re-run the build.  	comment "Stripping options" diff --git a/include/toolchain-build.mk b/include/toolchain-build.mk index 6defe63ed..a0bc4061f 100644 --- a/include/toolchain-build.mk +++ b/include/toolchain-build.mk @@ -11,6 +11,8 @@ REAL_STAGING_DIR_HOST:=$(STAGING_DIR_HOST)  STAGING_DIR_HOST:=$(TOOLCHAIN_DIR)  BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) +TOOLCHAIN_JOBS?=$(if $(CONFIG_TOOLCHAIN_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS)) +  include $(INCLUDE_DIR)/host-build.mk  HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile index 5682698bc..d829098e5 100644 --- a/toolchain/binutils/Makefile +++ b/toolchain/binutils/Makefile @@ -79,7 +79,7 @@ define Host/Configure  endef  define Host/Compile -	$(MAKE) -C $(HOST_BUILD_DIR) all +	$(MAKE) $(TOOLCHAIN_JOBS) -C $(HOST_BUILD_DIR) all  endef  define Host/Install diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk index e2277207b..8c293dd33 100644 --- a/toolchain/gcc/common.mk +++ b/toolchain/gcc/common.mk @@ -173,7 +173,7 @@ endif  GCC_MAKE:= \  	export SHELL="$(BASH)"; \ -	$(MAKE) \ +	$(MAKE) $(TOOLCHAIN_JOBS) \  		CFLAGS_FOR_TARGET="$(TARGET_CFLAGS)" \  		CXXFLAGS_FOR_TARGET="$(TARGET_CFLAGS)" diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile index 362548aae..d3d4d85cd 100644 --- a/toolchain/uClibc/Makefile +++ b/toolchain/uClibc/Makefile @@ -109,7 +109,7 @@ UCLIBC_MAKE = PATH='$(TARGET_PATH)' $(MAKE) -C $(HOST_BUILD_DIR) \  define Host/Compile  	$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(HOST_BUILD_DIR)/Rules.mak -	$(UCLIBC_MAKE) PREFIX= all +	$(UCLIBC_MAKE) $(TOOLCHAIN_JOBS) PREFIX= all  	$(UCLIBC_MAKE) PREFIX="$(TOOLCHAIN_DIR)/" install_runtime install_dev  	$(CP) $(HOST_BUILD_DIR)/libc/libc_so.a $(TOOLCHAIN_DIR)/lib/  	$(CP) $(HOST_BUILD_DIR)/libpthread/*/libpthread_so.a $(TOOLCHAIN_DIR)/lib/ | 
