# git rev-parse -q --verify be80788ef3e8c5af76344e7c19e32388651ad08c^{commit} be80788ef3e8c5af76344e7c19e32388651ad08c already have revision, skipping fetch # git checkout -q -f -B kisskb be80788ef3e8c5af76344e7c19e32388651ad08c # git clean -qxdf # < git log -1 # commit be80788ef3e8c5af76344e7c19e32388651ad08c # Author: Christophe Leroy # Date: Tue Jul 11 18:08:27 2023 +0200 # # 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/a7d6d0c20deaccfcbc74c3149e782538461fd6fe.1689091394.git.christophe.leroy@csgroup.eu # < /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 be80788ef3e8c5af76344e7c19e32388651ad08c # make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_defconfig+NO_MEMORY_HOTPLUG_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_defconfig Using /kisskb/src/arch/powerpc/configs/ppc64_defconfig as base Merging /kisskb/src/arch/powerpc/configs/le.config Merging /kisskb/src/arch/powerpc/configs/guest.config Value of CONFIG_VIRTIO_BLK is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BLK=m New value: CONFIG_VIRTIO_BLK=y Value of CONFIG_SCSI_VIRTIO is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_SCSI_VIRTIO=m New value: CONFIG_SCSI_VIRTIO=y Value of CONFIG_VIRTIO_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_NET=m New value: CONFIG_VIRTIO_NET=y Value of CONFIG_VIRTIO_CONSOLE is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_CONSOLE=m New value: CONFIG_VIRTIO_CONSOLE=y Value of CONFIG_VIRTIO_PCI is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_PCI=m New value: CONFIG_VIRTIO_PCI=y Value of CONFIG_VIRTIO_BALLOON is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BALLOON=m New value: CONFIG_VIRTIO_BALLOON=y Value of CONFIG_VHOST_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VHOST_NET=m New value: CONFIG_VHOST_NET=y Value of CONFIG_IBMVETH is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVETH=m New value: CONFIG_IBMVETH=y Value of CONFIG_IBMVNIC is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVNIC=m New value: CONFIG_IBMVNIC=y Merging /kisskb/src/arch/powerpc/configs/kvm_guest.config # # merged configuration written to .config (needs make) # # Added to kconfig CONFIG_MEMORY_HOTPLUG=n # Added to kconfig CONFIG_MEMORY_HOTREMOVE=n # < make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_defconfig+NO_MEMORY_HOTPLUG_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_defconfig+NO_MEMORY_HOTPLUG_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_defconfig+NO_MEMORY_HOTPLUG_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_pseries_defconfig+NO_MEMORY_HOTPLUG_powerpc-gcc5 # Build took: 0:02:44.949379