diff --git a/patches/openwrt/0096-scripts-feeds-fix-version-detection-for-Make-4.2.1.patch b/patches/openwrt/0096-scripts-feeds-fix-version-detection-for-Make-4.2.1.patch new file mode 100644 index 00000000..94b0e4e3 --- /dev/null +++ b/patches/openwrt/0096-scripts-feeds-fix-version-detection-for-Make-4.2.1.patch @@ -0,0 +1,24 @@ +From: Matthias Schiffer +Date: Wed, 15 Jun 2016 19:31:08 +0200 +Subject: scripts: feeds: fix version detection for Make >= 4.2.1 + +Signed-off-by: Jo-Philipp Wich + +Backport of LEDE df18b3756fef6a28d9194368d3156f0cd85fae19 + +diff --git a/scripts/feeds b/scripts/feeds +index f8f29cd..908e56c 100755 +--- a/scripts/feeds ++++ b/scripts/feeds +@@ -22,7 +22,10 @@ my @mkver = split /\s+/, `$mk -v`, 4; + my $valid_mk = 1; + $mkver[0] =~ /^GNU/ or $valid_mk = 0; + $mkver[1] =~ /^Make/ or $valid_mk = 0; +-$mkver[2] >= "3.81" or $valid_mk = 0; ++ ++my ($mkv1, $mkv2) = split /\./, $mkver[2]; ++($mkv1 >= 4 || ($mkv1 == 3 && $mkv2 >= 81)) or $valid_mk = 0; ++ + $valid_mk or die "Unsupported version of make found: $mk\n"; + + my @feeds; diff --git a/patches/openwrt/0097-build-don-t-add-j-for-parallel-builds-with-Make-4.2.patch b/patches/openwrt/0097-build-don-t-add-j-for-parallel-builds-with-Make-4.2.patch new file mode 100644 index 00000000..6cdf13ab --- /dev/null +++ b/patches/openwrt/0097-build-don-t-add-j-for-parallel-builds-with-Make-4.2.patch @@ -0,0 +1,48 @@ +From: Matthias Schiffer +Date: Wed, 15 Jun 2016 19:31:34 +0200 +Subject: build: don't add -j for parallel builds with Make 4.2+ + +Make usually passes -j and jobserver arguments as part of MAKEFLAGS. LEDE +removes MAKEFLAGS to have better control of the build, and re-adds the +jobserver arguments with -j to the Make commandline where desired. + +Make 4.2+ behave differently with these arguments passed on the commandline +than in MAKEFLAGS: -j will override the jobserver argument and the job +count will be unlimited. + +Moving the flags to MAKEFLAGS will need many packages to be changed and +tested; therefore, we opt for a less invasive change for now and just +remove -j for Make 4.2+, as the jobserver argument alone is enough to +enable parallel builds for these Make versions. + +Signed-off-by: Jo-Philipp Wich +Signed-off-by: Matthias Schiffer + +Backport of LEDE 6fb212f2933bbbdf2935124205717c9d0ca72b32 + +diff --git a/include/host-build.mk b/include/host-build.mk +index e2b5f2f..44401b8 100644 +--- a/include/host-build.mk ++++ b/include/host-build.mk +@@ -10,7 +10,7 @@ HOST_INSTALL_DIR ?= $(HOST_BUILD_DIR)/host-install + HOST_BUILD_PARALLEL ?= + + ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),) +- HOST_MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j) ++ HOST_MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j)) + else + HOST_MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS) + endif +diff --git a/include/package.mk b/include/package.mk +index c69d928..a99cdc6 100644 +--- a/include/package.mk ++++ b/include/package.mk +@@ -23,7 +23,7 @@ PKG_RELRO_PARTIAL ?= 1 + PKG_RELRO_FULL ?= 1 + + ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),) +- MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j) ++ MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j)) + else + MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS) + endif diff --git a/patches/openwrt/0098-tools-cmake-fix-parallel-build-with-Make-4.2.patch b/patches/openwrt/0098-tools-cmake-fix-parallel-build-with-Make-4.2.patch new file mode 100644 index 00000000..16709ae6 --- /dev/null +++ b/patches/openwrt/0098-tools-cmake-fix-parallel-build-with-Make-4.2.patch @@ -0,0 +1,30 @@ +From: Matthias Schiffer +Date: Wed, 15 Jun 2016 19:31:49 +0200 +Subject: tools/cmake: fix parallel build with Make 4.2+ + +Avoid using the --parallel argument to the CMake bootstrap, as that doesn't +allow us to remove the -j argument. Instead, pass the HOST_JOBS arguments +in MAKEFLAGS. + +Signed-off-by: Matthias Schiffer + +Backport of LEDE 96db10752483cb07f822686482b44be6c21fbb5f + +diff --git a/tools/cmake/Makefile b/tools/cmake/Makefile +index 08e2b02..6c211de 100644 +--- a/tools/cmake/Makefile ++++ b/tools/cmake/Makefile +@@ -18,10 +18,11 @@ HOST_CONFIGURE_PARALLEL:=1 + + include $(INCLUDE_DIR)/host-build.mk + ++HOST_CONFIGURE_CMD := MAKEFLAGS="$(HOST_JOBS)" $(BASH) ./configure ++ + HOST_CONFIGURE_VARS := + + HOST_CONFIGURE_ARGS := \ +- --prefix=$(STAGING_DIR_HOST) \ +- $(if $(MAKE_JOBSERVER),--parallel="$(MAKE_JOBSERVER)") ++ --prefix=$(STAGING_DIR_HOST) + + $(eval $(call HostBuild))