This is an automated email from the git hooks/post-receive script.

pere pushed a commit to branch master
in repository dkms.

commit dd205cd86e2d91b7b8714e3115daadc5f078662b
Author: Petter Reinholdtsen <[email protected]>
Date:   Sun May 1 15:01:11 2016 +0200

    Build modules using all CPU cores.
    
    Patch by Andras Korn, updated by Aron Xu.
    
    Closes: #663114
---
 debian/patches/parallell-build.patch | 108 +++++++++++++++++++++++++++++++++++
 debian/patches/series                |   1 +
 2 files changed, 109 insertions(+)

diff --git a/debian/patches/parallell-build.patch 
b/debian/patches/parallell-build.patch
new file mode 100644
index 0000000..06b0680
--- /dev/null
+++ b/debian/patches/parallell-build.patch
@@ -0,0 +1,108 @@
+Description: Build in parallell by default.
+ Build using 'make -j#' where # is based on the number of CPU cores available.
+ Patch was updated by Aron Xu <[email protected]>.
+Author: Andras Korn <[email protected]>
+Bug-Debian: https://bugs.debian.org/663114
+Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663114
+Forwarded: no
+Reviewed-By: Petter Reinholdtsen <[email protected]>
+Last-Update: 2016-05-01
+
+--- dkms-2.2.0.3.orig/dkms
++++ dkms-2.2.0.3/dkms
+@@ -127,6 +127,7 @@ show_usage()
+     echo $"              [--kernelsourcedir=source-location] 
[--no-prepare-kernel] [--no-initrd]"
+     echo $"              [--binaries-only] [--source-only] [-r release 
(SuSE)] [--verbose]"
+     echo $"              [--size] [--spec=specfile] [--media=floppy|iso|tar] 
[--legacy-postinst=0|1]"
++    echo $"              [-j number]"
+ }
+ 
+ VER()
+@@ -145,6 +146,18 @@ VER()
+                 -e 's: ::g'
+ }
+ 
++# Find out how many CPUs there are so that we may pass an appropriate -j
++# option to make. Ignore hyperthreading for now.
++get_num_cpus()
++{
++   # use nproc(1) from coreutils 8.1-1+ if available, otherwise single job
++   if [ -x /usr/bin/nproc ]; then
++      nproc
++   else
++      echo "1"
++  fi
++}
++
+ # Figure out the correct module suffix for the kernel we are currently
+ # dealing with, which may or may not be the currently installed kernel.
+ set_module_suffix()
+@@ -1089,7 +1102,7 @@ prepare_kernel()
+       invoke_command "cp /boot/vmlinuz.version.h include/linux/version.h" 
"using /boot/vmlinux.version.h"
+       invoke_command "cp -f $kernel_config .config" "using $kernel_config"
+       invoke_command "make KERNELRELEASE=$1 cloneconfig" "make cloneconfig" 
background
+-      invoke_command "make CONFIG_MODVERSIONS=1 KERNELRELEASE=$1 dep" "make 
CONFIG_MODVERSIONS=1 dep" background
++      invoke_command "make -j$parallel_jobs CONFIG_MODVERSIONS=1 
KERNELRELEASE=$1 dep" "make CONFIG_MODVERSIONS=1 dep" background
+     elif grep -q rhconfig.h 
$kernel_source_dir/include/linux/{modversions,version}.h 2>/dev/null; then
+       echo $"Running Red Hat style preparation routine"
+       invoke_command "make clean" "make clean" background
+@@ -1135,9 +1148,9 @@ prepare_kernel()
+ 
+       invoke_command "make KERNELRELEASE=$1 oldconfig" "make oldconfig" 
background
+       if [[ $(VER $1) < $(VER 2.5) ]]; then
+-          invoke_command "make KERNELRELEASE=$1 dep" "make dep" background
++          invoke_command "make -j$parallel_jobs KERNELRELEASE=$1 dep" "make 
dep" background
+       else
+-          invoke_command "make KERNELRELEASE=$1 prepare-all scripts" "make 
prepare-all" background
++          invoke_command "make -j$parallel_jobs KERNELRELEASE=$1 prepare-all 
scripts" "make prepare-all" background
+       fi
+     fi
+     cd - >/dev/null
+@@ -1209,7 +1222,7 @@ do_build()
+     invoke_command "$clean" "cleaning build area" background
+     echo $"DKMS make.log for $module-$module_version for kernel $kernelver 
($arch)" >> "$dkms_tree/$module/$module_version/build/make.log"
+     date >> "$dkms_tree/$module/$module_version/build/make.log"
+-    local the_make_command="${make_command/#make/make 
KERNELRELEASE=$kernelver}"
++    local the_make_command="${make_command/#make/make -j$parallel_jobs 
KERNELRELEASE=$kernelver}"
+ 
+     invoke_command "{ $the_make_command; } >> 
$dkms_tree/$module/$module_version/build/make.log 2>&1" "$the_make_command" 
background || \
+       report_build_problem 10 $"Bad return status for module build on kernel: 
$kernelver ($arch)" \
+@@ -3498,6 +3511,7 @@ while (($# > 0)); do
+       --debug)
+           export PS4='${BASH_SOURCE}@${LINENO}(${FUNCNAME[0]}): '
+           set -x;;
++      -j)                  read_arg parallel_jobs "$1" "$2" || shift;;
+       -*|--*)              error $" Unknown option: $1"
+                            show_usage
+                            exit 2;;
+@@ -3545,6 +3559,12 @@ if [[ $arch && $all ]]; then
+       $"--all on the command line."
+ fi
+ 
++# Default to -j<number of CPUs>
++parallel_jobs=${parallel_jobs:-$(get_num_cpus)}
++
++# Make sure we're not passing -j0 to make; treat -j0 as just "-j"
++[[ "$parallel_jobs" = 0 ]] && parallel_jobs=""
++
+ # Run the specified action
+ for action_to_run in $action; do
+     setup_kernels_arches "$action_to_run"
+--- dkms-2.2.0.3.orig/dkms.8
++++ dkms-2.2.0.3/dkms.8
+@@ -515,6 +515,15 @@ prior than DKMS 2.1.  This option curren
+ A supplemental configuration file to the system-wide dkms framework, 
typically located
+ in /etc/dkms/framework.conf.  All option that are normally provided on a 
command line
+ can be provided in this file.
++.TP
++.B \-j number
++Run no more than
++.I number
++jobs in parallel; see the -j option of
++.I make(1).
++Defaults to the number of CPUs in the system, detected by
++.I nproc(1).
++Specify 0 to impose no limit on the number of parallel jobs.
+ .SH ORIGINAL MODULES
+ During the first install of a module for a <kernelversion>,
+ .B dkms
diff --git a/debian/patches/series b/debian/patches/series
index f648f5a..eef8e9f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,4 @@ fix_have_one_kernel_for_non-zero_return_code.diff
 1491729-0001-Add-POST_BUILD-to-the-dkms_conf_variables-list.patch
 1491729-0002-Add_BUILD_DEPENDS_configuration_option.patch
 apport-write-binary.patch
+parallell-build.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-dkms/dkms.git

_______________________________________________
Pkg-dkms-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-dkms-commits

Reply via email to