# git rev-parse -q --verify 92387f33009308fd6d74a80a3573d7a0d2401905^{commit} 92387f33009308fd6d74a80a3573d7a0d2401905 already have revision, skipping fetch # git checkout -q -f -B kisskb 92387f33009308fd6d74a80a3573d7a0d2401905 # git clean -qxdf # < git log -1 # commit 92387f33009308fd6d74a80a3573d7a0d2401905 # 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/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux-gcc --version # < /opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux-ld --version # < git log --format=%s --max-count=1 92387f33009308fd6d74a80a3573d7a0d2401905 # < make -s -j 120 ARCH=s390 O=/kisskb/build/kbuild_s390-defconfig_s390x CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux- defconfig # make -s -j 120 ARCH=s390 O=/kisskb/build/kbuild_s390-defconfig_s390x CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux- cc1: error: unrecognized command line option '-mtune=zEC12'cc1: error: unrecognized command line option '-mtune=zEC12' make[2]: *** [/kisskb/src/scripts/Makefile.build:99: scripts/mod/devicetable-offsets.s] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/scripts/Makefile.build:266: scripts/mod/empty.o] Error 1 make[1]: *** [/kisskb/src/Makefile:1128: prepare0] Error 2 make: *** [Makefile:179: sub-make] Error 2 Command 'make -s -j 120 ARCH=s390 O=/kisskb/build/kbuild_s390-defconfig_s390x CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/kbuild_s390-defconfig_s390x # Build took: 0:00:02.900576