# git rev-parse -q --verify b49e578b9314db051da0ad72bba24094193f9bd0^{commit} b49e578b9314db051da0ad72bba24094193f9bd0 already have revision, skipping fetch # git checkout -q -f -B kisskb b49e578b9314db051da0ad72bba24094193f9bd0 # git clean -qxdf # < git log -1 # commit b49e578b9314db051da0ad72bba24094193f9bd0 # Author: Christophe Leroy # Date: Wed Jul 12 23:45:02 2023 +1000 # # Revert "powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto" # # This partly reverts commit 1e688dd2a3d6759d416616ff07afc4bb836c4213. # # That commit aimed at optimising the code around generation of # WARN_ON/BUG_ON but this leads to a lot of dead code erroneously # generated by GCC. # # That dead code becomes a problem when we start using objtool validation # because objtool will abort validation with a warning as soon as it # detects unreachable code. This is because unreachable code might # be the indication that objtool doesn't properly decode object text. # # text data bss dec hex filename # 9551585 3627834 224376 13403795 cc8693 vmlinux.before # 9535281 3628358 224376 13388015 cc48ef vmlinux.after # # Once this change is reverted, in a standard configuration (pmac32 + # function tracer) the text is reduced by 16k which is around 1.7% # # We already had problem with it when starting to use objtool on powerpc # as a replacement for recordmcount, see commit 93e3f45a2631 ("powerpc: # Fix __WARN_FLAGS() for use with Objtool") # # There is also a problem with at least GCC 12, on ppc64_defconfig + # CONFIG_CC_OPTIMIZE_FOR_SIZE=y + CONFIG_DEBUG_SECTION_MISMATCH=y : # # LD .tmp_vmlinux.kallsyms1 # powerpc64-linux-ld: net/ipv4/tcp_input.o:(__ex_table+0xc4): undefined reference to `.L2136' # make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1 # make[1]: *** [/home/chleroy/linux-powerpc/Makefile:1238: vmlinux] Error 2 # # Taking into account that other problems are encountered with that # 'asm goto' in WARN_ON(), including build failures, keeping that # change is not worth it allthough it is primarily a compiler bug. # # Revert it for now. # # mpe: Retain EMIT_WARN_ENTRY as a synonym for EMIT_BUG_ENTRY to reduce # churn, as there are now nearly as many uses of EMIT_WARN_ENTRY as # EMIT_BUG_ENTRY. # # Signed-off-by: Christophe Leroy # Acked-by: Naveen N Rao # Signed-off-by: Michael Ellerman # Link: https://msgid.link/20230712134552.534955-1-mpe@ellerman.id.au # < /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 b49e578b9314db051da0ad72bba24094193f9bd0 # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc64le_defconfig Using /kisskb/src/arch/powerpc/configs/ppc64_defconfig as base Merging /kisskb/src/arch/powerpc/configs/le.config # # merged configuration written to .config (needs make) # # < make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc64le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-fixes_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/powerpc-fixes_ppc64le_defconfig_powerpc-gcc5 # Build took: 0:01:47.521642