Skip to content

Commit 700dea5

Browse files
d-goldinmasahir0y
authored andcommitted
kheaders: substituting --sort in archive creation
The option --sort=ORDER was only introduced in tar 1.28 (2014), which is rather new and might not be available in some setups. This patch tries to replicate the previous behaviour as closely as possible to fix the kheaders build for older environments. It does not produce identical archives compared to the previous version due to minor sorting differences but produces reproducible results itself in my tests. Reported-by: Andreas Schwab <[email protected]> Signed-off-by: Dmitry Goldin <[email protected]> Tested-by: Andreas Schwab <[email protected]> Tested-by: Quentin Perret <[email protected]> Signed-off-by: Masahiro Yamada <[email protected]>
1 parent 991b78f commit 700dea5

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

kernel/gen_kheaders.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,13 @@ done | cpio --quiet -pd $cpio_dir >/dev/null 2>&1
7171
find $cpio_dir -type f -print0 |
7272
xargs -0 -P8 -n1 perl -pi -e 'BEGIN {undef $/;}; s/\/\*((?!SPDX).)*?\*\///smg;'
7373

74-
# Create archive and try to normalize metadata for reproducibility
75-
tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
76-
--owner=0 --group=0 --sort=name --numeric-owner \
77-
-Jcf $tarfile -C $cpio_dir/ . > /dev/null
74+
# Create archive and try to normalize metadata for reproducibility.
75+
# For compatibility with older versions of tar, files are fed to tar
76+
# pre-sorted, as --sort=name might not be available.
77+
find $cpio_dir -printf "./%P\n" | LC_ALL=C sort | \
78+
tar "${KBUILD_BUILD_TIMESTAMP:+--mtime=$KBUILD_BUILD_TIMESTAMP}" \
79+
--owner=0 --group=0 --numeric-owner --no-recursion \
80+
-Jcf $tarfile -C $cpio_dir/ -T - > /dev/null
7881

7982
echo "$src_files_md5" > kernel/kheaders.md5
8083
echo "$obj_files_md5" >> kernel/kheaders.md5

0 commit comments

Comments
 (0)