# git rev-parse -q --verify 60ecfddd7a092f9cbd2398dbc55da3abbb803ff0^{commit} 60ecfddd7a092f9cbd2398dbc55da3abbb803ff0 already have revision, skipping fetch # git checkout -q -f -B kisskb 60ecfddd7a092f9cbd2398dbc55da3abbb803ff0 # git clean -qxdf # < git log -1 # commit 60ecfddd7a092f9cbd2398dbc55da3abbb803ff0 # Author: Masahiro Yamada # Date: Fri Sep 16 15:29:53 2022 +0900 # # linux/export: use inline assembler to populate symbol CRCs # # Since commit 7b4537199a4a ("kbuild: link symbol CRCs at final link, # removing CONFIG_MODULE_REL_CRCS"), the module versioning on the # (non-upstreamed-yet) kvx Linux port is broken due to unexpected padding # for __crc_* symbols. The kvx GCC adds padding so u32 gets 8-byte # alignment instead of 4. # # I do not know if this happens for upstream architectures in general, # but any compiler has the freedom to insert padding for faster access. # # Use the inline assembler to directly specify the wanted data layout. # This is how we previously did before the breakage. # # Link: https://lore.kernel.org/lkml/20220817161438.32039-1-ysionneau@kalray.eu/ # Link: https://lore.kernel.org/linux-kbuild/31ce5305-a76b-13d7-ea55-afca82c46cf2@kalray.eu/ # Fixes: 7b4537199a4a ("kbuild: link symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS") # Reported-by: Yann Sionneau # Signed-off-by: Masahiro Yamada # Tested-by: Yann Sionneau # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 60ecfddd7a092f9cbd2398dbc55da3abbb803ff0 # < make -s -j 32 ARCH=powerpc O=/kisskb/build/kbuild_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc64le_defconfig # < make -s -j 32 ARCH=powerpc O=/kisskb/build/kbuild_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 32 ARCH=powerpc O=/kisskb/build/kbuild_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 32 ARCH=powerpc O=/kisskb/build/kbuild_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/kbuild_ppc64le_defconfig_powerpc-gcc5 # Build took: 0:02:46.471549