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

Reply via email to