# git rev-parse -q --verify 0bc81767c5bd9d005fae1099fb39eb3688370cb1^{commit} 0bc81767c5bd9d005fae1099fb39eb3688370cb1 already have revision, skipping fetch # git checkout -q -f -B kisskb 0bc81767c5bd9d005fae1099fb39eb3688370cb1 # git clean -qxdf # < git log -1 # commit 0bc81767c5bd9d005fae1099fb39eb3688370cb1 # Author: Ard Biesheuvel # Date: Fri Jan 17 17:43:18 2020 +0100 # # crypto: arm/chacha - fix build failured when kernel mode NEON is disabled # # When the ARM accelerated ChaCha driver is built as part of a configuration # that has kernel mode NEON disabled, we expect the compiler to propagate # the build time constant expression IS_ENABLED(CONFIG_KERNEL_MODE_NEON) in # a way that eliminates all the cross-object references to the actual NEON # routines, which allows the chacha-neon-core.o object to be omitted from # the build entirely. # # Unfortunately, this fails to work as expected in some cases, and we may # end up with a build error such as # # chacha-glue.c:(.text+0xc0): undefined reference to `chacha_4block_xor_neon' # # caused by the fact that chacha_doneon() has not been eliminated from the # object code, even though it will never be called in practice. # # Let's fix this by adding some IS_ENABLED(CONFIG_KERNEL_MODE_NEON) tests # that are not strictly needed from a logical point of view, but should # help the compiler infer that the NEON code paths are unreachable in # those cases. # # Fixes: b36d8c09e710c71f ("crypto: arm/chacha - remove dependency on generic ...") # Reported-by: Russell King # Cc: Arnd Bergmann # Signed-off-by: Ard Biesheuvel # Signed-off-by: Herbert Xu # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 0bc81767c5bd9d005fae1099fb39eb3688370cb1 # < make -s -j 48 ARCH=x86 O=/kisskb/build/crypto_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # yes \n | make -s -j 48 ARCH=x86 O=/kisskb/build/crypto_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- oldconfig yes: standard output: Broken pipe # make -s -j 48 ARCH=x86 O=/kisskb/build/crypto_x86-allmodconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- /kisskb/src/tools/objtool Completed OK # rm -rf /kisskb/build/crypto_x86-allmodconfig_x86_64-gcc8 # Build took: 0:23:50.559103