diff options
Diffstat (limited to 'build-test-kernel')
-rwxr-xr-x | build-test-kernel | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/build-test-kernel b/build-test-kernel index 7ea4823..0a5388e 100755 --- a/build-test-kernel +++ b/build-test-kernel @@ -19,6 +19,7 @@ ktest_kernel_source="." # dir of kernel source # set with: -k <path> # defaults: current directory ktest_njobs=$(nproc) +ktest_precise=false COVERAGE="" # doing code coverage? MAKEARGS=() @@ -56,11 +57,14 @@ fi CMD="$1" shift -while getopts "k:c:h${ktest_args}" arg; do +while getopts "k:Pc:h${ktest_args}" arg; do case $arg in k) ktest_kernel_source="$OPTARG" ;; + P) + ktest_precise=true + ;; c) if [[ ! -d $OPTARG ]]; then echo "$OPTARG must be a directory" @@ -173,6 +177,11 @@ build_kernel() { rm -rf "$ktest_kernel_binary" mkdir -p "$ktest_kernel_binary" + local kconfig="$ktest_kernel_build/.config" + + if $ktest_precise && [[ -f "$kconfig" ]]; then + mv "$kconfig" "$kconfig".bak + fi new_config @@ -188,6 +197,11 @@ build_kernel() [[ -n $opt ]] && kernel_opt check "$opt" done + # Preserve timestamp if config didn't change: + if $ktest_precise && [[ -f "$kconfig".bak ]] && diff -q "$kconfig" "$kconfig".bak; then + mv "$kconfig".bak "$kconfig" + fi + case $KERNEL_ARCH in mips) do_make -k vmlinuz |