# git rev-parse -q --verify 7bc04ce6b914a06d5823509d1de237787c58e649^{commit} # git fetch -q -n -f https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/kspp # git rev-parse -q --verify 7bc04ce6b914a06d5823509d1de237787c58e649^{commit} 7bc04ce6b914a06d5823509d1de237787c58e649 # git checkout -q -f -B kisskb 7bc04ce6b914a06d5823509d1de237787c58e649 # git clean -qxdf # < git log -1 # commit 7bc04ce6b914a06d5823509d1de237787c58e649 # Author: Gustavo A. R. Silva # Date: Tue Aug 17 15:33:33 2021 -0500 # # Makefile: Enable -Wimplicit-fallthrough for Clang # # With the recent fixes for fallthrough warnings, it is now possible to # enable -Wimplicit-fallthrough for Clang. # # Special thanks to Nathan Chancellor who fixed the Clang bug[1][2] # that put the application of this patch to a halt, temporarily. This # bugfix only appears in Clang 14.0.0, so older versions still contain # the bug and -Wimplicit-fallthrough won't be enabled for them, for # now. # # As Masahiro noted, the "ifeq" conditional "will break when Clang # version 100.0.0 is released. But, before that, we will raise the # minimum supported clang version, and this conditional will go away."[3] # # This concludes a long journey and now we are finally getting rid # of the unintentional fallthrough bug-class in the kernel, entirely. # # [1] https://github.com/llvm/llvm-project/commit/9ed4a94d6451046a51ef393cd62f00710820a7e8 # [2] https://bugs.llvm.org/show_bug.cgi?id=51094 # [3] https://lore.kernel.org/lkml/CAK7LNAQFgYgavTP2ZG9Y16XBVdPuJ98J_Ty1OrQy1GXHq6JjQQ@mail.gmail.com/ # # Link: https://github.com/KSPP/linux/issues/115 # Link: https://github.com/ClangBuiltLinux/linux/issues/236 # ["firstword" and "sort" was idea of Masahiro] # Suggested-by: Masahiro Yamada # [The conditional "ifeq" was idea of Nathan] # Suggested-by: Nathan Chancellor # Reviewed-by: Nathan Chancellor # Tested-by: Nathan Chancellor # Co-developed-by: Kees Cook # Signed-off-by: Kees Cook # Signed-off-by: Gustavo A. R. Silva # < /opt/cross/kisskb/br-microblaze-full-2016.08-613-ge98b4dd/bin/microblazeel-linux-gcc --version # < /opt/cross/kisskb/br-microblaze-full-2016.08-613-ge98b4dd/bin/microblazeel-linux-ld --version # < git log --format=%s --max-count=1 7bc04ce6b914a06d5823509d1de237787c58e649 # < make -s -j 24 ARCH=microblaze O=/kisskb/build/gustavoars_mmu_defconfig_microblaze CROSS_COMPILE=/opt/cross/kisskb/br-microblaze-full-2016.08-613-ge98b4dd/bin/microblazeel-linux- mmu_defconfig # < make -s -j 24 ARCH=microblaze O=/kisskb/build/gustavoars_mmu_defconfig_microblaze CROSS_COMPILE=/opt/cross/kisskb/br-microblaze-full-2016.08-613-ge98b4dd/bin/microblazeel-linux- help # make -s -j 24 ARCH=microblaze O=/kisskb/build/gustavoars_mmu_defconfig_microblaze CROSS_COMPILE=/opt/cross/kisskb/br-microblaze-full-2016.08-613-ge98b4dd/bin/microblazeel-linux- olddefconfig # make -s -j 24 ARCH=microblaze O=/kisskb/build/gustavoars_mmu_defconfig_microblaze CROSS_COMPILE=/opt/cross/kisskb/br-microblaze-full-2016.08-613-ge98b4dd/bin/microblazeel-linux- Kernel: arch/microblaze/boot/linux.bin is ready (#1) Completed OK # rm -rf /kisskb/build/gustavoars_mmu_defconfig_microblaze # Build took: 0:01:18.732893