kheaders: optimize md5sum calculation for in-tree builds
commit 0e11773e76098729552b750ccff79374d1e62002 upstream. This script computes md5sum of headers in srctree and in objtree. However, when we are building in-tree, we know the srctree and the objtree are the same. That is, we end up with the same computation twice. In fact, the first two lines of kernel/kheaders.md5 are always the same for in-tree builds. Unify the two md5sum calculations. For in-tree builds ($building_out_of_srctree is empty), we check only two directories, "include", and "arch/$SRCARCH/include". For out-of-tree builds ($building_out_of_srctree is 1), we check 4 directories, "$srctree/include", "$srctree/arch/$SRCARCH/include", "include", and "arch/$SRCARCH/include" since we know they are all different. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Matthias Maennich <maennich@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
eb914bae6e
commit
a1d0c6e2f3
@ -21,29 +21,30 @@ arch/$SRCARCH/include/
|
||||
# Uncomment it for debugging.
|
||||
# if [ ! -f /tmp/iter ]; then iter=1; echo 1 > /tmp/iter;
|
||||
# else iter=$(($(cat /tmp/iter) + 1)); echo $iter > /tmp/iter; fi
|
||||
# find $src_file_list -name "*.h" | xargs ls -l > /tmp/src-ls-$iter
|
||||
# find $obj_file_list -name "*.h" | xargs ls -l > /tmp/obj-ls-$iter
|
||||
# find $all_dirs -name "*.h" | xargs ls -l > /tmp/ls-$iter
|
||||
|
||||
all_dirs=
|
||||
if [ "$building_out_of_srctree" ]; then
|
||||
for d in $dir_list; do
|
||||
all_dirs="$all_dirs $srctree/$d"
|
||||
done
|
||||
fi
|
||||
all_dirs="$all_dirs $dir_list"
|
||||
|
||||
# include/generated/compile.h is ignored because it is touched even when none
|
||||
# of the source files changed. This causes pointless regeneration, so let us
|
||||
# ignore them for md5 calculation.
|
||||
pushd $srctree > /dev/null
|
||||
src_files_md5="$(find $dir_list -name "*.h" |
|
||||
grep -v "include/generated/compile.h" |
|
||||
grep -v "include/generated/autoconf.h" |
|
||||
xargs ls -l | md5sum | cut -d ' ' -f1)"
|
||||
popd > /dev/null
|
||||
obj_files_md5="$(find $dir_list -name "*.h" |
|
||||
grep -v "include/generated/compile.h" |
|
||||
grep -v "include/generated/autoconf.h" |
|
||||
headers_md5="$(find $all_dirs -name "*.h" |
|
||||
grep -v "include/generated/compile.h" |
|
||||
grep -v "include/generated/autoconf.h" |
|
||||
xargs ls -l | md5sum | cut -d ' ' -f1)"
|
||||
|
||||
# Any changes to this script will also cause a rebuild of the archive.
|
||||
this_file_md5="$(ls -l $sfile | md5sum | cut -d ' ' -f1)"
|
||||
if [ -f $tarfile ]; then tarfile_md5="$(md5sum $tarfile | cut -d ' ' -f1)"; fi
|
||||
if [ -f kernel/kheaders.md5 ] &&
|
||||
[ "$(head -n 1 kernel/kheaders.md5)" = "$src_files_md5" ] &&
|
||||
[ "$(head -n 2 kernel/kheaders.md5 | tail -n 1)" = "$obj_files_md5" ] &&
|
||||
[ "$(head -n 3 kernel/kheaders.md5 | tail -n 1)" = "$this_file_md5" ] &&
|
||||
[ "$(head -n 1 kernel/kheaders.md5)" = "$headers_md5" ] &&
|
||||
[ "$(head -n 2 kernel/kheaders.md5 | tail -n 1)" = "$this_file_md5" ] &&
|
||||
[ "$(tail -n 1 kernel/kheaders.md5)" = "$tarfile_md5" ]; then
|
||||
exit
|
||||
fi
|
||||
@ -79,8 +80,7 @@ find $cpio_dir -printf "./%P\n" | LC_ALL=C sort | \
|
||||
--owner=0 --group=0 --numeric-owner --no-recursion \
|
||||
-Jcf $tarfile -C $cpio_dir/ -T - > /dev/null
|
||||
|
||||
echo "$src_files_md5" > kernel/kheaders.md5
|
||||
echo "$obj_files_md5" >> kernel/kheaders.md5
|
||||
echo $headers_md5 > kernel/kheaders.md5
|
||||
echo "$this_file_md5" >> kernel/kheaders.md5
|
||||
echo "$(md5sum $tarfile | cut -d ' ' -f1)" >> kernel/kheaders.md5
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user