# git rev-parse -q --verify e2079e93f562c7f7a030eb7642017ee5eabaaa10^{commit} e2079e93f562c7f7a030eb7642017ee5eabaaa10 already have revision, skipping fetch # git checkout -q -f -B kisskb e2079e93f562c7f7a030eb7642017ee5eabaaa10 # git clean -qxdf # < git log -1 # commit e2079e93f562c7f7a030eb7642017ee5eabaaa10 # Author: Nathan Chancellor # Date: Mon Aug 26 17:41:55 2019 -0700 # # kbuild: Do not enable -Wimplicit-fallthrough for clang for now # # This functionally reverts commit bfd77145f35c ("Makefile: Convert # -Wimplicit-fallthrough=3 to just -Wimplicit-fallthrough for clang"). # # clang enabled support for -Wimplicit-fallthrough in C in r369414 [1], # which causes a lot of warnings when building the kernel for two reasons: # # 1. Clang does not support the /* fall through */ comments. There seems # to be a general consensus in the LLVM community that this is not # something they want to support. Joe Perches wrote a script to convert # all of the comments to a "fallthrough" keyword that will be added to # compiler_attributes.h [2] [3], which catches the vast majority of the # comments. There doesn't appear to be any consensus in the kernel # community when to do this conversion. # # 2. Clang and GCC disagree about falling through to final case statements # with no content or cases that simply break: # # https://godbolt.org/z/c8csDu # # This difference contributes at least 50 warnings in an allyesconfig # build for x86, not considering other architectures. This difference # will need to be discussed to see which compiler is right [4] [5]. # # [1]: https://github.com/llvm/llvm-project/commit/1e0affb6e564b7361b0aadb38805f26deff4ecfc # [2]: https://lore.kernel.org/lkml/61ddbb86d5e68a15e24ccb06d9b399bbf5ce2da7.camel@perches.com/ # [3]: https://lore.kernel.org/lkml/1d2830aadbe9d8151728a7df5b88528fc72a0095.1564549413.git.joe@perches.com/ # [4]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91432 # [5]: https://github.com/ClangBuiltLinux/linux/issues/636 # # Given these two problems need discussion and coordination, do not enable # -Wimplicit-fallthrough with clang right now. Add a comment to explain # what is going on as well. This commit should be reverted once these two # issues are fully flushed out and resolved. # # Suggested-by: Masahiro Yamada # Signed-off-by: Nathan Chancellor # Acked-by: Miguel Ojeda # Acked-by: Nick Desaulniers # Acked-by: Gustavo A. R. Silva # Signed-off-by: Masahiro Yamada # < /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 e2079e93f562c7f7a030eb7642017ee5eabaaa10 # < make -s -j 32 ARCH=powerpc O=/kisskb/build/kbuild_pseries_le_defconfig_ppc64le-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_le_defconfig # make -s -j 32 ARCH=powerpc O=/kisskb/build/kbuild_pseries_le_defconfig_ppc64le-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/kernel/futex.c: In function 'do_futex': /kisskb/src/kernel/futex.c:1676:17: warning: 'oldval' may be used uninitialized in this function [-Wmaybe-uninitialized] return oldval == cmparg; ^ /kisskb/src/kernel/futex.c:1651:6: note: 'oldval' was declared here int oldval, ret; ^ WARNING: vmlinux.o(.text+0x31fc): Section mismatch in reference from the variable __boot_from_prom to the function .init.text:prom_init() The function __boot_from_prom() references the function __init prom_init(). This is often because __boot_from_prom lacks a __init annotation or the annotation of prom_init is wrong. WARNING: vmlinux.o(.text+0x33d0): Section mismatch in reference from the variable start_here_common to the function .init.text:start_kernel() The function start_here_common() references the function __init start_kernel(). This is often because start_here_common lacks a __init annotation or the annotation of start_kernel is wrong. WARNING: "ahci_em_messages" [vmlinux] is a static EXPORT_SYMBOL_GPL WARNING: "ftrace_set_clr_event" [vmlinux] is a static EXPORT_SYMBOL_GPL WARNING: "ahci_em_messages" [vmlinux] is a static EXPORT_SYMBOL_GPL WARNING: "ftrace_set_clr_event" [vmlinux] is a static EXPORT_SYMBOL_GPL Completed OK # rm -rf /kisskb/build/kbuild_pseries_le_defconfig_ppc64le-gcc5 # Build took: 0:03:00.477773