# git rev-parse -q --verify 01e89a4acefc9d8356e91dde310da11e5b97d22d^{commit} 01e89a4acefc9d8356e91dde310da11e5b97d22d already have revision, skipping fetch # git checkout -q -f -B kisskb 01e89a4acefc9d8356e91dde310da11e5b97d22d # git clean -qxdf # < git log -1 # commit 01e89a4acefc9d8356e91dde310da11e5b97d22d # Author: Rasmus Villemoes # Date: Fri Aug 4 14:05:36 2023 +0200 # # scripts/setlocalversion: also consider annotated tags of the form vx.y.z-${file_localversion} # # Commit 6ab7e1f95e96 ("setlocalversion: use only the correct release # tag for git-describe") was absolutely correct to limit which annotated # tags would be used to compute the -01234-gabcdef suffix. Otherwise, if # some random annotated tag exists closer to HEAD than the vX.Y.Z one, # the commit count would be too low. # # However, since the version string always includes the # ${file_localversion} part, now the problem is that the count can be # too high. For example, building an 6.4.6-rt8 kernel with a few patches # on top, I currently get # # $ make -s kernelrelease # 6.4.6-rt8-00128-gd78b7f406397 # # But those 128 commits include the 100 commits that are in # v6.4.6..v6.4.6-rt8, so this is somewhat misleading. # # Amend the logic so that, in addition to the linux-next consideration, # the script also looks for a tag corresponding to the 6.4.6-rt8 part of # what will become the `uname -r` string. With this patch (so 29 patches # on top of v6.4.6-rt8), one instead gets # # $ make -s kernelrelease # 6.4.6-rt8-00029-gd533209291a2 # # While there, note that the line # # git describe --exact-match --match=$tag $tag 2>/dev/null # # obviously asks if $tag is an annotated tag, but it does not actually # tell if the commit pointed to has any relation to HEAD. So remove both # uses of --exact-match, and instead just ask if the description # generated is identical to the tag we provided. Since we then already # have the result of # # git describe --match=$tag # # we also end up reducing the number of times we invoke "git describe". # # Signed-off-by: Rasmus Villemoes # Signed-off-by: Masahiro Yamada # < /opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 01e89a4acefc9d8356e91dde310da11e5b97d22d # make -s -j 160 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- x86_64_defconfig # < make -s -j 160 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 160 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 160 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc11 # Build took: 0:03:00.005362