Hello,
On Monday 29 August 2011 22:11:52 eugene...@gmail.com wrote:
From: Eugene San (eugenesan) eugene...@gmail.com
Signed-off-by: Eugene San (eugenesan) eugene...@gmail.com
---
Config.in | 13 +
include/kernel-defaults.mk |6 --
2 files changed, 17 insertions(+), 2 deletions(-)
We already support building the kernel and modules in parallel when make is
invoked with a given number of jobs from the top-level directory of OpenWrt.
Did not you have it working?
diff --git a/Config.in b/Config.in
index f36221c..f4dbf80 100644
--- a/Config.in
+++ b/Config.in
@@ -307,6 +307,19 @@ menu Global build settings
If you say Y, toolchain build might break.
Before reporting build bugs, set this to N and re-run the
build.
+ config KERNEL_PARALLEL
+ bool
+ prompt Parallelize the kernel build (May break build)
+ depends on PKG_BUILD_PARALLEL
+ default n
+ help
+ Build the kernel with parallel make jobs.
+ This speeds up the kernel build on SMP machines, but may
+ break the build for certain toolchain versions.
+
+ If you say Y, kernel build might break.
+ Before reporting build bugs, set this to N and re-run the
build.
+
comment Stripping options
choice
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index 5fd27ae..b637577 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -5,6 +5,8 @@
# See /LICENSE for more information.
#
+KERNEL_JOBS?=$(if $(CONFIG_KERNEL_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS))
+
KERNEL_MAKEOPTS := -C $(LINUX_DIR) \
CROSS_COMPILE=$(KERNEL_CROSS) \
ARCH=$(LINUX_KARCH) \
@@ -93,14 +95,14 @@ endef
define Kernel/CompileModules/Default
rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map
- +$(MAKE) $(KERNEL_MAKEOPTS) modules
+ +$(MAKE) $(KERNEL_MAKEOPTS) $(KERNEL_JOBS) modules
endef
OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R
.note.gnu.build-id
define Kernel/CompileImage/Default
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),,rm -f $(TARGET_DIR)/init)
- +$(MAKE) $(KERNEL_MAKEOPTS) $(KERNELNAME)
+ +$(MAKE) $(KERNEL_MAKEOPTS) $(KERNEL_JOBS) $(KERNELNAME)
$(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S
$(LINUX_DIR)/vmlinux
$(LINUX_KERNEL) $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S
$(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf endef
--
Florian
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel