# git rev-parse -q --verify a24e06a3db44b45dbfab067b7e36b4c54efaeeb9^{commit} a24e06a3db44b45dbfab067b7e36b4c54efaeeb9 already have revision, skipping fetch # 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-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 a24e06a3db44b45dbfab067b7e36b4c54efaeeb9 # < make -s -j 32 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- x86_64_defconfig # < make -s -j 32 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 32 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 32 ARCH=x86 O=/kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.5.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/kbuild_x86_64_defconfig_x86_64-gcc8 # Build took: 0:01:42.820646