# git rev-parse -q --verify a24e06a3db44b45dbfab067b7e36b4c54efaeeb9^{commit} # git fetch -q -n -f git://gitlab.ozlabs.ibm.com/mirror/linux-kbuild.git for-next # git rev-parse -q --verify a24e06a3db44b45dbfab067b7e36b4c54efaeeb9^{commit} a24e06a3db44b45dbfab067b7e36b4c54efaeeb9 # git checkout -q -f -B kisskb a24e06a3db44b45dbfab067b7e36b4c54efaeeb9 # git clean -qxdf # < git log -1 # commit a24e06a3db44b45dbfab067b7e36b4c54efaeeb9 # Author: Masahiro Yamada # Date: Thu May 5 16:22:35 2022 +0900 # # kbuild: record symbol versions in *.cmd files # # When CONFIG_MODVERSIONS=y, the output from genksyms is saved in # separate *.symversions files, and will be used much later when # CONFIG_LTO_CLANG=y because it is impossible to update LLVM bit code # here. # # This approach is not robust because: # # - *.symversions may or may not exist. If *.symversions does not # exist, we never know if it is missing for legitimate reason # (i.e. no EXPORT_SYMBOL) or something bad has happened (for # example, the user accidentally deleted it). Once it occurs, # it is not self-healing because *.symversions is generated # as a side effect. # # - stale (i.e. invalid) *.symversions might be picked up if an # object is generated in a non-ordinary way, and corresponding # *.symversions (, which was generated by old builds) just happen # to exist. # # A more robust approach is to save symbol versions in *.cmd files # because: # # - *.cmd always exists (if the object is generated by if_changed # rule or friends). Even if the user accidentally deletes it, # it will be regenerated in the next build. # # - *.cmd is always re-generated when the object is updated. This # avoid stale version information being picked up. # # I will remove *.symversions later. # # Signed-off-by: Masahiro Yamada # Tested-by: Nicolas Schier # Reviewed-by: Nicolas Schier # Tested-by: Nathan Chancellor # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux-ld --version # < git log --format=%s --max-count=1 a24e06a3db44b45dbfab067b7e36b4c54efaeeb9 # < make -s -j 32 ARCH=arm64 O=/kisskb/build/kbuild_arm64-defconfig_arm64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux- defconfig # < make -s -j 32 ARCH=arm64 O=/kisskb/build/kbuild_arm64-defconfig_arm64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux- help # make -s -j 32 ARCH=arm64 O=/kisskb/build/kbuild_arm64-defconfig_arm64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux- olddefconfig # make -s -j 32 ARCH=arm64 O=/kisskb/build/kbuild_arm64-defconfig_arm64-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/aarch64-linux/bin/aarch64-linux- Completed OK # rm -rf /kisskb/build/kbuild_arm64-defconfig_arm64-gcc11 # Build took: 0:04:58.237827