# 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_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc85xx_defconfig Using /kisskb/src/arch/powerpc/configs/mpc85xx_base.config as base Merging /kisskb/src/arch/powerpc/configs/85xx-32bit.config Merging /kisskb/src/arch/powerpc/configs/85xx-hw.config Merging /kisskb/src/arch/powerpc/configs/fsl-emb-nonhw.config # # merged configuration written to .config (needs make) # # < make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_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_mpc85xx_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_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/linux/build_bug.h:5:0, from /kisskb/src/include/linux/container_of.h:5, from /kisskb/src/include/linux/list.h:5, from /kisskb/src/include/linux/module.h:12, from /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:15: /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: In function 'allocate_bd': /kisskb/src/include/linux/err.h:28:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ^ /kisskb/src/include/linux/compiler.h:77:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:139:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(fep->ring_mem_addr)) ^ Completed OK # rm -rf /kisskb/build/powerpc-fixes_mpc85xx_defconfig_powerpc-gcc5 # Build took: 0:01:15.352128